Помещение файла в репозиторий CVS

Опубликовано mensh - чт, 11/06/2008 - 08:19

Для помещения нового файла в репозиторий CVS команды выполняются из рабочего каталога — песочницы. Там же должен располагаться и новый файл.

В начале работы следует прежде всего обновить локальные копии командой update, которая синхронизирует изменения по направлению из репозитория в песочницу:

oleg@localhost:~/sandbox/linuxcookbook:$ cvs update
cvs update: Updating .
cvs update: Updating content
? content/maninfopagesprint.html

При выполнении команды update вопросительным знаком отмечаются файлы, которые еще не были занесены в репозиторий CVS (в данном случае — content/maninfopagesprint.html).

Для просмотра списка изменений без модификации „песочницы“ используется команда status:

oleg@localhost:~/sandbox/linuxcookbook:$ cvs status
cvs status: Examining .
cvs status: Examining content
===================================================================
File: adduser.html Status: Up-to-date

 Working revision: 1.2 Wed Nov 5 11:31:09 2008
 Repository revision: 1.2 /home/oleg/cvsroot/linuxcookbook/content/adduser.html,v
 Sticky Tag: (none)
 Sticky Date: (none)
 Sticky Options: (none)

===================================================================
File: cdbootdiskcreating.html Status: Up-to-date

 Working revision: 1.1.1.1 Wed Nov 5 11:04:09 2008
 Repository revision: 1.1.1.1 /home/oleg/cvsroot/linuxcookbook/content/cdbootdiskcreating.html,v
 Sticky Tag: (none)
 Sticky Date: (none)
 Sticky Options: (none)

===================================================================
File: cdcopy.html Status: Up-to-date

 Working revision: 1.1.1.1 Wed Nov 5 11:04:09 2008
 Repository revision: 1.1.1.1 /home/oleg/cvsroot/linuxcookbook/content/cdcopy.html,v
 Sticky Tag: (none)
 Sticky Date: (none)
 Sticky Options: (none)

...

Файл достигший состояния, которое необходимо сохранить, заносится в репозиторий:

oleg@localhost:~/sandbox/linuxcookbook:$ cvs add content/maninfopagesprint.html
cvs add: scheduling file `content/maninfopagesprint.html` for addition
cvs add: use `cvs commit` to add this file permanently
oleg@localhost:~/sandbox/linuxcookbook:$ cvs commit -m `Printing man and info pages` \
> content/maninfopagesprint.html
RCS file: /home/oleg/cvsroot/linuxcookbook/content/maninfopagesprint.html,v
done
Checking in content/maninfopagesprint.html;
/home/oleg/cvsroot/linuxcookbook/content/maninfopagesprint.html,v <-- maninfopagesprint.html
initial revision: 1.1
done

Команда commit -m показывает, как создать запись в журнале для одного файла из командной строки без запуска текстового редактора.

Даже в однопользовательском репозитории песочницу необходимо синхронизировать с репозиторием, а в многопользовательских репозиториях синхронизация особенно важна, так как при синхронизации значительно снижается частота возникновения конфликтов.