next up previous contents
Next: 14.25 diff - показать Up: 14. CVS - система Previous: 14.23 admin - административный

Подраздел


14.24 checkout - получение исходных текстов из хранилища для редактирования

Создать рабочий каталог, содержащий копии исходных файлов, которые описаны как modules. Вы должны выполнить команду checkout до использования большинства других команд CVS, поскольку они предполагают доступ к рабочему каталогу с рабочими копиями файлов.

Аргумент modules представляет собой одно из двух:

Символические имена определены в конфигурационном файле modules.

В зависимости от модулей, которые вы специфицировали, checkout может рекурсивно создавать каталожную иерархию в вашем рабочем каталоге и заполнять е© файлами из хранилища. После этого вы можете редактировать исходные тексты (файлы) в любое время, несмотря на то, что другие файлы могут в это же время редактироваться другими разработчиками. Вы можете обновлять файлы в рабочем каталоге, чтобы включить те изменения, которые были внесены другими разработчиками в файлах, содержащимися в хранилище. Наконец, вы можете все ваши изменения записать в хранилище исходных текстов (файлов).

Обратим внимание, что checkout используется для создания дерева каталогов. Верхний каталог созда©тся в том рабочем каталоге, в котором вы вызвали cvs. Обычно создаваемый каталог имеет то же имя, что и модуль, который вы хотите отредактировать.

Файлы, которые созда©т команда checkout, имеют по умолчанию права доступа чтение-запись, если не указан глобальный параметр -r программы cvs, или, если не установлена переменная окружения $CVSREAD, или, если не установлена возможность watch по отношению к данному файлу.

Вторичное выполнение команды checkout в том же каталоге, в котором уже выполнялась ранее предыдущая команда checkout, вполне допустима и имеет то же значение, что и команда update с параметром -d. Иными словами, любые изменения в хранилище, которые произошли с момента предыдущей команды checkout, будут отображены в вашем рабочем каталоге.

14.24.1 Параметры команды checkout

Ниже приведены стандартные параметры, которые поддерживаются командой checkout.

-D date
Использовать наиболее свежую версию, но не позднее, чем дата date. Этот параметр предполагает параметр -P.

-f
Полезно использовать вместе с параметорм -D или с параметорм -r. Если не найдено подходящих версий, то будет произвед©н поиск наиболее свежих версий.

-k kflag
Обработать ключевые слова RCS в соответствии со значением строки kflag. Подробнее смотрите описание co(1). Будущие обновления этого файла в этом рабочем каталоге будут использовать то же самое значение kflag, т.е. этот параметр липкий.

-l
Выполнять только в текущем рабочем каталоге, без подкаталогов.

-n
Не выполнять никакой программы, определ©нной в файле modules.

-P
Пропустить пустые каталоги.

-p
Направить файлы не в рабочий каталог, а на устройство стандартного вывода. Например, по команде
cvs checkout -p BOOK/CVS_Checkout.tex
файл CVS_Checkout.tex из каталога BOOK в хранилище будет выведен на устройство вывода.

-R
Обработать дерево каталогов рекурсивно, вместе с подкаталогами (этот режим включ©н по умолчанию).

-r tag
Использовать версию помеченную тегом с именем tag. Этот параметр липкий, предполагает параметр -P.

В дополнение вы можете использовать ряд специальных параметров команды checkout.

-A
Сбросить (reset) значения всех липких тегов, т.е. даты, значения параметра -k.

-c
Копировать отсортированные определения модулей, записанных в конфигурационном файле modules на устройство стандартного вывода, не создавая и не изменяя никаких файлов в рабочем каталоге. Например,
cvs checkout -c

-d dir
Создать рабочие копии файлов в новом каталоге с именем dir, а не с именем модуля. В общем использование данного параметра эквивалентно последовательности команд
mkdir dir
cd dir
cvs checkout ... без параметра -d

Имеется важное исключение. Очень удобно во время выполнения операции 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 tag
С двумя параметрами -j команда объединит версии помеченные первым и вторым тегами и поместит результат в рабочий каталог. Если использовался один параметр -j, то будет произведено объединение предыдущей версии с версией, определ©нной параметром -j.

В дополнение, каждое значение параметра -j может содержать дату, которая при использовании в ветвях может ограничить множество версий внутри ветви лишь одной с заданной датой модификации. В этом случает формат использования параметра -j таков:
-jtag:date
Более подробное обсуждение ветвей смотрите в разделе 14.7.

-N
Параметр имеет смысл лишь при совместном использовании с параметром -d. CVS предотвращает укорачивание имени файла в рабочем каталоге при выполнении команды. Смотрите описание параметра -d.

-s
Похоже на параметр -c, но включает состояние всех модулей и сортирует их по статусной строке.


next up previous contents
Next: 14.25 diff - показать Up: 14. CVS - система Previous: 14.23 admin - административный
Andrei Chevel
Andrei.Chevel@pnpi.spb.ru