Создание личного репозитария CVS
CVS (Concurrent Versions System), присутствующая практически во всех дистрибутивах Linux, легко масштабируется от хранения персональных данных до больших проектов. CVS в отличие от RCS включает поддержку сложной структуры каталогов и возможность одновременного извлечения группы файлов и целых каталогов.
Для создания личного репозитария создается корневой каталог репозитария (имя и место расположения корневого каталога CVS выбирается произвольно):
oleg@localhost:~:$ mkdir ~/cvsroot
Устанавливаются права, позволяющие пользоваться репозитарием лишь его владельцу:
oleg@localhost:~:$ chmod -R 700 ~/cvsroot
Командой init создается и инициализируется репозитарий:
oleg@localhost:~:$ cvs -d ~/cvsroot init
Далее выполняется переход в каталог с файлами, которые будут храниться в репозитарии:
oleg@localhost:~:$ cd ~/webprojects/linuxcookbook/
Затем каталог (дерево каталогов) импортируется в репозитарий:
oleg@localhost:~/webprojects/linuxcookbook:$ \ > cvs -d ~/cvsroot import linuxcookbook mensh version1
Аргументы mensh (метка поставщика) и version1 (номер версии) необходимы для нормальной работы CVS.
Запускается текстовый редактор по умолчанию со следующим текстом:
CVS: Enter log. Lines beginning with `CVS:` are removed automatically CVS: CVS:----------------------------------------------------------------------
Вводимое описание проекта должно быть внятым и подробным, чтобы через какое-то время не пришлось гадать, о чем идет речь.
После введения описания проекта, сохранения и закрытия происходит импорт:
cvs import: Importing /home/oleg/cvsroot/linuxcookbook/content N linuxcookbook/content/passwordfilesintegrity.html N linuxcookbook/content/cvslocalrepositorycreating.html N linuxcookbook/content/groupadd.html N linuxcookbook/content/cupsservinglinuxclients.html N linuxcookbook/content/sudo.html N linuxcookbook/content/cddvdrecordintro.html ... No conflicts created by this import
Теперь за пределами корневого каталога репозитария CVS создается рабочий каталог, в который будут извлекаться файлы для редактирования (из репозитария можно извлекать отдельные файлы, группы файлов и целые каталоги):
oleg@localhost:~:$ mkdir ~/sandbox
Выполняется переход в созданный рабочий каталог:
oleg@localhost:~:$ cd ~/sandbox oleg@localhost:~/sandbox:$
Из репозитария извлекается необходимый каталог с подкаталогами и всеми файлами в рабочий каталог:
oleg@localhost:~/sandbox:$ cvs -d ~/cvsroot checkout linuxcookbook cvs checkout: Updating linuxcookbook cvs checkout: Updating linuxcookbook/content U linuxcookbook/content/adduser.html U linuxcookbook/content/cdbootdiskcreating.html U linuxcookbook/content/cdcopy.html U linuxcookbook/content/cddvdrecordintro.html U linuxcookbook/content/cdfiletreecreating.html U linuxcookbook/content/cdrecordaudio.html U linuxcookbook/content/cdrecordblank.html U linuxcookbook/content/cdrecordmultisession.html U linuxcookbook/content/cdrecordportable.html U linuxcookbook/content/cdrecordscanbus.html U linuxcookbook/content/cdrecordsplit.html U linuxcookbook/content/cups.html ...
При извлечении файлов из репозитария CVS в каталоге ~/sandbox/linuxcookbook — песочнице — создается каталог для работы с файлами и каталог CVS с набором административных файлов CVS:
oleg@localhost:~/sandbox/linuxcookbook:$ ls -l drwxr-xr-x 2 oleg users 4096 2008-11-05 16:21 CVS/ drwxr-xr-x 3 oleg users 4096 2008-11-05 16:31 content/
Файл после редактирования сохраняется и возвращается в репозитарий CVS командой commit:
oleg@localhost:~/sandbox/linuxcookbook:$ cd content oleg@localhost:~/sandbox/linuxcookbook/content:$ vim adduser.html oleg@localhost:~/sandbox/linuxcookbook/content:$ cvs commit
Снова запускается текстовый редактор по умолчанию со следующим текстом:
CVS: Enter log. Lines beginning with `CVS:` are removed automatically CVS: CVS: Comitting in . CVS: CVS: Modified files: CVS: adduser.html CVS:----------------------------------------------------------------------
После занесения в журнал описания изменений и закрытия редактора происходит занесение отредактированного файла в репозитарий:
cvs commit: Examining . Checking in adduser.html; /home/oleg/cvsroot/linuxcookbook/content/adduser.html,v <-- adduser.html new revision: 1.2; previous revision: 1.1 done
Каждый проект — один каталог со всеми файлами и подкаталогами — должен храниться в отдельном каталоге, даже если он состоит из одного файла.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии