Статья: Введение в CVS Конспект первого дня двухдневного курса по CVS

}

! /* Return non-zero iff HEADER is a prefix of TEXT, ignoring

! differences in case. HEADER should be lower-case, and

null-terminated; LEN is the length of TEXT. */

static int

match_header (char *header, char *text, size_t len)

Текст из более старой редакции находится после строки *** 62,68

***; текст новой редакции находится после строки --- 62,69 ---. Пара цифр

означает показанный промежуток строк. CVS показывает контекст вокруг изменений и

отмечает измененные строки символами `!'. Таким образом вы видите, что одна

строка из верхней половины была заменена на две строки из нижней.

Вот второй "ломоть":

***************

*** 76,81 ****

--- 77,84 ----

for (i = 0; i < header_len; i++)

{

char t = text[i];

+ if ('A' <= t && t <= 'Z')

+ t += 'a' - 'A';

if (header[i] != t)

return 0;

}

Здесь описывается добавление двух строк, что обозначается символами `+'. CVS не выводит старый текст -- это было бы избыточно. Для описания удаленных строк используется подобный формат. Как и выход команды diff, выход команды cvs diff обычно называется "заплатой" (patch), потому что разработчики традиционно использовали этот формат для распространения исправлений и небольших новый возможностей. Достаточно читабельна, заплата содержит достаточно информации, чтобы применить изменения, которые она содержит, к текстовому файлу. В действительности, команда patch в среде UNIX делает с заплатами именно это.

Добавление и удаление файлов

CVS обращается с добавлением и удалением файлов так же, как и с прочими изменениями, записывая такие события в истории файлов. Можно смотреть на это так, как будто CVS сохраняет историю каталогов вместе с историей файлов. CVS не считает, что созданные файлы должны оказаться под его контролем; это не так во многих случаях. Например, не требуется записывать историю изменений объектных и выполняемых файлов, потому что их содержимое всегда может быть воссоздано из исходных файлов (надо надеяться). Вместо этого, когда вы создадите новый файл, cvs update маркирует этот файл флагом `?', пока вы не скажете CVS, что именно вы намереваетесь сделать с этим файлом.

Чтобы добавить файл в проект, сначала вы должны создать его, затем использовать команду cvs add, чтобы маркировать его как добавленный. Затем при следующем выполнении команды cvs commit CVS добавит этот файл в репозиторий.

Например, вот так можно добавить файл README в проект httpc:

$ ls

CVS Makefile httpc.c poll-server

К-во Просмотров: 402
Бесплатно скачать Статья: Введение в CVS Конспект первого дня двухдневного курса по CVS