Создание дерева каталогов из нескольких файлов

Когда вы начнете использовать CVS, вы, скорее всего, уже имеете несколько проектов, которые можно поместить под контроль CVS. В этих случаях самым простым методом будет использование команды import. Самым простым объяснением, вероятно, будет привести пример. Если файлы, которые вы хотите поместить под CVS, находятся в wdir', а вы хотите, чтобы они появились в репозитории в каталоге $CVSROOT/yoyodyne/rdir, вы можете сказать:

$ cd wdir
$ cvs import -m "Imported sources" yoyodyne/rdir yoyo start

Если вы не укажете журнальное сообщение с помощью ключа командной строки -m, то CVS запустит редактор, в котором можно будет набрать это сообщение. Строка 'yoyo' — это тэг производителя, а 'start' — это тэг релиза. В данном контексте они могут не иметь назначения, но CVS требует их присутствия.

Теперь вы можете проверить, что все работает и удалить ваш исходный каталог.

$ cd ..
$ mv dir dir.orig
$ cvs checkout yoyodyne/dir # объяснение следует
$ diff -r dir.orig yoyodyne/dir
$ rm -r dir.orig

Было бы неплохо удалить изначальные файлы, чтобы случайно не начать редактировать их в dir без использования CVS. Конечно же, перед удалением хорошо было бы убедиться, что у вас есть резервная копия исходных текстов.

Команда checkout получает в качестве аргумента имя модуля (как в предыдущих примерах) или имя каталога относительно $CVSROOT, как в вышеприведенном примере.

Хорошо было бы проверить, что права доступа на созданные CVS каталоги правильны, и что эти каталоги принадлежат должным группам. См. раздел “Права доступа к файлам”.

Если какие-то из файлов, которые нужно импортировать, являются бинарными, вам потребуется использовать обертки, чтобы указать, какие именно.