Для помещения нового файла в репозиторий 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 показывает, как создать запись в журнале для одного файла из командной строки без запуска текстового редактора.
Даже в однопользовательском репозитории песочницу необходимо синхронизировать с репозиторием, а в многопользовательских репозиториях синхронизация особенно важна, так как при синхронизации значительно снижается частота возникновения конфликтов.