Аргумент modules представляет собой одно из двух:
В зависимости от модулей, которые вы специфицировали, checkout может рекурсивно создавать каталожную иерархию в вашем рабочем каталоге и заполнять е© файлами из хранилища. После этого вы можете редактировать исходные тексты (файлы) в любое время, несмотря на то, что другие файлы могут в это же время редактироваться другими разработчиками. Вы можете обновлять файлы в рабочем каталоге, чтобы включить те изменения, которые были внесены другими разработчиками в файлах, содержащимися в хранилище. Наконец, вы можете все ваши изменения записать в хранилище исходных текстов (файлов).
Обратим внимание, что checkout используется для создания дерева каталогов. Верхний каталог созда©тся в том рабочем каталоге, в котором вы вызвали cvs. Обычно создаваемый каталог имеет то же имя, что и модуль, который вы хотите отредактировать.
Файлы, которые созда©т команда checkout, имеют по умолчанию права доступа чтение-запись, если не указан глобальный параметр -r программы cvs, или, если не установлена переменная окружения $CVSREAD, или, если не установлена возможность watch по отношению к данному файлу.
Вторичное выполнение команды checkout в том же каталоге, в котором уже выполнялась ранее предыдущая команда checkout, вполне допустима и имеет то же значение, что и команда update с параметром -d. Иными словами, любые изменения в хранилище, которые произошли с момента предыдущей команды checkout, будут отображены в вашем рабочем каталоге.
Ниже приведены стандартные параметры, которые поддерживаются командой checkout.
В дополнение вы можете использовать ряд специальных параметров команды checkout.
Имеется важное исключение. Очень удобно во время выполнения операции checkout над отдельным объектом, чтобы он появлялся на выходе без пустых промежуточных каталогов. Только в этом случае CVS пытается "укоротить" имена файлов (пути относительно $CVSROOT), чтобы пропустить пустые каталоги.
Например, модуль с именем trans содержит файл с именем base.c
и команда
cvs checkout -d dir trans
создаст каталог dir и поместит внутрь этого каталога модуль с
именем base.c. Подобным же образом, если модуль barn, который
имеет подкаталог с именем room, который, в свою очередь содержит
файл mouse.c, то команда
cvs checkout -d dir barn/room
создаст каталог dir и поместит в него файл mouse.c.
Использование параметра -N отменяет такое поведение. Таким образом
прежние примеры будут выглядеть иначе. Так, команда
cvs checkout -N -d dir trans
создаст каталог dir, а в н©м создаст каталог с именем trans,
в котором и поместит файл base.c.
А команда
cvs checkout -N -d dir barn/room
создаст дерево каталогов dir/barn/room, в котором поместит файл mouse.c.
В дополнение, каждое значение параметра -j может содержать дату,
которая при использовании в ветвях может ограничить
множество версий внутри ветви лишь одной с заданной датой
модификации. В этом случает формат использования параметра -j таков:
-jtag:date
Более подробное обсуждение ветвей смотрите в разделе
14.7.