Создание общего репозитария CVS
Для создания репозитария CVS, совместно используемого группой пользователей, вначале создается владелец и группа, которым будет принадлежать репозитарий:
root@localhost:~:# groupadd cvsusers root@localhost:~:# useradd -g cvsusers -u 103 cvs
Затем создается репозитарий:
root@localhost:~:# mkdir /cvsroot root@localhost:~:# chown -R cvs /cvsroot root@localhost:~:# chown -R 770 /cvsroot root@localhost:~:# cvs -d /cvsroot init root@localhost:~:# chgrp cvsusers /cvsroot root@localhost:~:# chmod g+s /cvsroot
Для предоставления пользователям доступа к репозитарию они включаются в группу cvsusers (любой пользователь из группы cvsusers сможет импортировать проект в репозитарий). Включить пользователя в группу cvsusers можно прямым редактированием файла /etc/group:
root@localhost:~:# mcedit /etc/group ... cvsusers:x:103:oleg
Выполняется переход в каталог с проектом, который будет импортирован в репозитарий:
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 /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
Владельцами нового проекта является пользователь, который его импортировал, и группа cvsusers:
oleg@localhost:~:$ stat /cvsroot/linuxcookbook File: `/cvsroot/linuxcookbook` Size: 144 Blocks: 0 IO Block: 4096 Каталог Device: 306h/774d Inode: 19058 Links: 6 Access: (2775/drwxrwsr-x) Uid: ( 1000/ oleg) Gid: ( 103/cvsusers) Access: 2008-11-06 19:58:48.000000000 +0500 Modify: 2008-11-06 19:58:49.000000000 +0500 Change: 2008-11-06 19:58:49.000000000 +0500
Для защиты от внешнего доступа файлов репозитария CVS настоятельно рекомендуется задать всем пользователям маску umask равную 007, для чего в файл ~/.bashrc каждого пользователя можно включить строку:
umask 007
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии