После того, как вы успели поиспользовать CVS для хранения информации об истории изменений: какие файлы, когда, как и кто изменил, вам потребуются разнообразные механизмы для просмотра истории.
Каждый раз, когда вы фиксируете изменения в файле, вам предлагается создать соответствующую журнальную запись.
Для того, чтобы просмотреть журнальные записи, соответствующие
каждой зафиксированной ревизии, используйте команду cvs
log
(see section Команда log: напечатать информацию о файлах).
Вы можете использовать файл history (see section Файл history), чтобы
журналировать разнообразные действия CVS. Чтобы извлечь
информацию из файла history, используйте команду cvs
history
(see section Файл history).
Вы можете настроить CVS для журналирования различных действий тем способом, который вам требуется. Это достигается выполнением определенного скрипта в определенные моменты времени. Скрипт может, например, добавить сообщение об изменении в конец какого-либо файла, послать почтовое сообщение группе разработчиков или, например, поместить сообщение в ньюсгруппу. Для того, чтобы журналировать факты фиксирования, используйте файл `loginfo' (see section Файл loginfo).
Для журналирования фиксирований, извлечений, экспортов и меток
можно использовать флаги `-i', `-o', `-e' и
`-t' соответственно. Эти флаги находятся в файле модулей.
Более гибким способом уведомления пользователей, требующим меньше
усилий по поддержке централизованных скриптов, является команда
cvs watch add
(see section CVS может посылать вам уведомления); эта команда
полезна, даже если вы не используете cvs watch on
.
В файле `taginfo' перечисляются программы, которые нужно
выполнить, когда кто-либо выполняет команды CVS tag
или rtag
. Файл `taginfo' имеет стандартный формат
административных файлов (see section Справочник по административным файлам), а
каждая строка в нем содержит регулярное выражение, за которым
следует команда, которую надо выполнить. Аргументы, которые
передаются команде, это имя-метки, операция
(add
для tag
, mov
для tag -F
,
del
для tag -d
), репозиторий, а затем следует
серия пар имя-файла ревизия. Ненулевой код завершения
программы приведет к отмене операции с метками.
Вот пример использования `taginfo' для журналирования команд
tag
и rtag
. В файле `taginfo' написано:
ALL /usr/local/cvsroot/CVSROOT/loggit
Здесь `/usr/local/cvsroot/CVSROOT/loggit' является таким
скриптом:
#!/bin/sh
echo "$@" >>/home/kingdon/cvsroot/CVSROOT/taglog
-flR
] [-r rev
|-D date
] files ...
Для каждого файла в списке files, напечатать головную
ревизию в стволе, а также информацию о последних изменениях в
каждой строке. Например:
$ cvs annotate ssfile
Annotations for ssfile
***************
1.1 (mary 27-Mar-96): ssfile line 1
1.2 (joe 28-Mar-96): ssfile line 2
В файле `ssfile' в настоящий момент содержит две строки.
Строка ssfile line 1
была зафиксирована mary
двадцать седьмого марта. Затем, двадцать восьмого, joe
добавил строки ssfile line 2
, не изменяя строки
ssfile line 1
. В этом отчете ничего не сказано о том, что
было удалено или заменено; используйте cvs diff
, чтобы
узнать это (see section Команда diff: показать различия между ревизиями).
Ключи команды cvs annotate
перечислены в section Краткий справочник по командам CVS,
и могут использоваться для выбора файлов и их ревизий, которые
нужно аннотировать. Ключи детально описаны в section Стандартные ключи командной строки.
Go to the first, previous, next, last section, table of contents.