Данный документ представляет собой сведенный
заметки по особенностям работы с
cvs и в частности с
TkCVS. Он не коей мере не может
быть использован в качестве пособия по обучению этим продуктам и служит только
для справочных целей. В тексте вы можете встретить и скорее встретите немало
неточностей и неверно итерпретируемых терминов. Оставьте это на совести автора.
В заметках использовались версии
cvs v1.9.26 и
TkCVS v6.0.
В процессе написания использовалась документация поставляемая с
cvs и
TkCVS, и материалы, найденые в Internet.
Прежде всего, для начала
работы с
cvs, необходимо создать репозитарий, используемы cvs для
хранения различных версий файлов. Место нахождения репозитария cvs может брать
из командной строки так и из переменной окружения
$CVSROOT.
[fa@horse ~] cvs init
[fa@horse .CVS]$ ls -R
CVSROOT
./CVSROOT:
checkoutlist cvswrappers,v loginfo,v rcsinfo verifymsg,v
checkoutlist,v editinfo modules rcsinfo,v
commitinfo editinfo,v modules,v taginfo
commitinfo,v history notify taginfo,v
cvswrappers loginfo notify,v verifymsg
При этом
автоматиски включается введение истории
history. Если в этом
нет необходимости, то после
cvs init следует удалить файл
history.
Предположим что
необходимо внести проект находящийся в /some/project в репозитарий как
$CVSROOT/myname/Project. Данная операция осуществялется следующим
образом, при условии что файлы относящиеся к проекту находятся в каталоге
/some/project:
[fa@horse ~] cd /some/project
[fa@horse project] cvs import -m "Imported sources" myname/Project Fa start
где
yoyo - тэг распространителя (
vendor tag),
start - "
release tag"
После чего, можно
проверить, переименовав исходный каталог проекта и попытаться восстановить его
из репозитария
[fa@horse project] cd ..
[fa@horse some] mv project poject.orig
[fa@horse some] cvs checkout myname/Project
[fa@horse some] diff -r project.orig myname/Project
[fa@horse some] rm -r project.orig
При работе с проектом "с нуля" достаточно занести в репозитарий стартовый
каталог аналогично описанному выше и добавлять остальный файлы по мере
необходимости. Переход от других revision control system не рассматривается.
Модули используются для облегчения доступа к
тем или иным файлам. Описание модулей хранится в файле
${CVSROOT}/CVSROOT/modules. При внесениии каких либо правок в
modulesнеобходимо получиться этот файл из репозитария:
[fa@horse ~] cvs checkout CVSROOT/modules
[fa@horse ~] cd CVSROOT
Формат записи:
key -a aliases...
key
[options] directory
key [options] directory files... где
key - ключ обращения к модулю - название модуля,
directory -
подкаталог относительно $CVSROOT, в котором находятся файл/файлы относящиеся к
данному модулю.
После внесения изменений в modules, необходимо занести его
обратно в репозитарий исполнив
cvs commit -m "Some changes in the
modules.
cd ..
cvs release -d CVSROOT
Использование -d задает
удаление об'ектов после операции release.
При исполнении команд
update release import cvs игрорирует файлы имена которых:
- Входят в список, включающий образцы имен файлов связанных с
администрированием CVS или других revision control system. Сюда также входят
резервные копии, об'ектные файлв и прочее. По умолчанию имена отвечают
образцам: