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

Подраздел


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

  • Формат использования:
    cvs checkout [options] modules ...
  • Требуется: хранилище.
  • Изменяется: рабочий каталог.
  • Синонимы: co, get.
Создать рабочий каталог, содержащий копии исходных файлов, которые описаны как modules. Вы должны выполнить команду checkout до использования большинства других команд CVS, поскольку они предполагают доступ к рабочему каталогу с рабочими копиями файлов.

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

  • символические имена, обозначающие некоторое множество каталогов и/или файлов;

  • пути к каталогам или файлам в хранилище (относительно $CVSROOT).

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


contents
Обновлено: 16.03.2015