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 соответсвенно не попали в репозитарий.