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
.
$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...
После внесения изменений в modules
, необходимо занести его
обратно в репозитарий исполнивcvs commit -m "Some changes in the
modules.
Использование -d задает
удаление об'ектов после операции release.
cd ..
cvs release -d CVSROOT
RCS | SCCS | CVS | CVS.adm | ||
RCSLOG | cvslog.* | ||||
tags | TAGS | ||||
.make.state | .nse_depinfo | ||||
*~ | #* | .#* | ,* | _$* | *$ |
*.old | *.bak | *.BAK | *.orig | *.rej | .del-* |
*.a | *.olb | *.o | *.obj | *.so | *.exe |
*.Z | *.elc | *.ln | |||
core |
Имена каталогов:#D <TAB>directory <TAB> Directory
name
то есть:#D <TAB> proj401 <TAB> Advanced
Chocolate Seeking Project.
(между полями вставяется одиночный символ
Tab а не слово <TAB> :)
Имена модулей:#M <TAB> module code <TAB> Module
description
Имена модулей должны быть непосредственно перед строкой
описания модулей или их псевдонимов(alias) и в месте после описания имени
католога #D
, в котором находятся эти модули. те.#M
<TAB> wrapper <TAB> Chocolate wrapper detector.
wrapper
proj401/wrapper
Рекомендуется добавить сразу в файл modules следующие строки для
работы с TkCVS ( и собственно с cvs ).
#D CVSROOT The Complete CVS Administration Directory #M modules The modules database modules CVSROOT modules #M loginfo post-commit command file loginfo CVSROOT loginfo #M commitinfo pre-commit command file commitinfo CVSROOT commitinfo #M rcsinfo RCS log template rcsinfo CVSROOT rcsinfo #M editinfo CVS log template editinfo CVSROOT editinfo
modules
о каталогах, но не сами
катологи. Собственно каталоги cоздаются вручную внутри $CVSROOT.
File -> Create Dir
#D Webs Web related
files.
Следующим шагом будет импортирование в репозитарий новго модуля и
соответствующих ему файлов. Предволожим это будут файлы составляющие home page.
Перед импортироавнием рекомендуется создать в подкаталогах
.cvsignore
для исключения из обработки бинарных файлов, таких как
картинки и компрессованные архивы. Псле чего перейдя в
~/public_html
выполним import.
File->Import
Поля ввода:
Module Directory - каталог в котором будут находится
файлы модуля. Мы его размещаем в $CVSROOT/Webs
-
Webs-Fa_Home_Page.
Modul Code - имя модуля под которым он
будет записан в modules - public_html
Version Number
- номер версии. Поскольку мы импортируем модуль впервые то укажем его 1.1
(начальный номер по умолчанию для cvs).
Module Name - описание
модуля, которое используется для отображении в TkCVS.
Теперь можно восстановить данное дерево в другом месте. Только необходимо учесть, что файлы описанные в .cvsignore соответсвенно не попали в репозитарий.