1. ИМЯ 1
2. ФОРМАТ 1
3. ОПИСАНИЕ 1
4. ОПЦИИ 2
5. ПОДСТАНОВКА КЛЮЧЕВЫХ СЛОВ 8
6. ФАЙЛОВЫЕ РЕЖИМЫ 10
7. ФАЙЛЫ 10
8. СРЕДА 11
9. ДИАГНОСТИКА 11
10. ИДЕНТИФИКАЦИЯ 11
11. СМ. ТАКЖЕ 11
12. ОГРАНИЧЕНИЯ 11
1. ИМЯ
co - оформленный вывод (checkout) модификаций (revisions) RCS
2. ФОРМАТ
co [options] file...
3. ОПИСАНИЕ
co ищет модификацию в каждом файле RCS и направляет ее для сохра-
нения в соответствующий рабочий файл file.
Имена путей, соответствующие суффиксу RCS, означают файлы RCS;
все другие означают рабочие файлы. Имена спарены, как объяснено в
ci(1).
Модификации файла RCS могут быть оформленно выведены блокирован-
ными или неблокированными. Блокирование модификации предотвращает
перекрытие обновлений. Модификация, оформленно выведенная для
чтения или обработки (например, для компиляции), не нуждается в
блокировании. Модификацию, оформленно выведенную для редактирова-
ния и позднейшего оформленного ввода, в норме надо блокировать.
Оформленный вывод (checkout) с блокированием не удается, если
оформленно выводимая модификация в этот момент блокирована другим
пользователем. (Блокировка может быть нарушена с помощью rcs(1).)
Оформленный вывод с блокированием также требует, чтобы пользова-
тель числился в списке доступа файла RCS, если он не владелец
файла или не привилегированный пользователь и этот список непуст.
Оформленный вывод без блокирования не подвержен ограничениям
списка доступа, и на него не влияет наличие блокировок.
Модификация выбирается при помощи опций для номера модификации
или ветви, даты/времени оформленного ввода (checkin), автора или
состояния. Когда опции для выбора применяются в комбинации, то co
ищет самую позднюю модификацию, удовлетворяющую им всем. Если ни
одна из опций выбора не специфицирована, то co ищет самую позднюю
модификацию на ветви по умолчанию (в норме на стволе, см. опцию
-b в rcs(1). Номер модификации или ветви может быть приписан лю-
бой из опций -f, -I, -l, -M, -p, -q, -r или -u. Опции -d (дата),
-s (состояние) и -w (автор) ищутся из одной (выбранной) ветви,
- 2 -
которая или специфицирована одной из опций -f,...,-u или является
ветвью по умолчанию.
Команда co, применяемая к файлу RCS без модификаций, создает ра-
бочий файл нулевой длины. co всегда совершает подстановку ключе-
вых слов (см. ниже).
4. ОПЦИИ
-r[rev]
ищет самую позднюю модификацию, чей номер меньше или равен
rev. Если rev указывает на ветвь, а не на модификацию, то
ищется самая поздняя модификация на этой ветви. Если rev
опущена, то ищется самая поздняя модификация на ветви по
умолчанию (см. опцию -b в rcs(1)). Если rev = $, то co оп-
ределяет номер модификации из значений ключевых слов в ра-
бочем файле. Иначе модификация составляется из одного или
более числовых или символьных полей, разделенных точками.
Если rev начинается с точки, то ветвь по умолчанию (в
норме ствол) прибавляется к ее началу. Если rev - номер
ветви с последующей точкой, то используется самая поздняя
модификация на этой ветви. Численный эквивалент символьно-
го поля специфицируется с опцией -n команд ci(1) или
rcs(1).
-l[rev]
то же, что -r, за исключением того, что она также блокиру-
ет искомую модификацию для пользователя.
-u[rev]
то же, что -r, за исключением того, что она разблокирует
искомую модификацию, если она блокирована пользователем.
Если rev опущена, то -u ищет модификацию,блокированную
пользователем, если такая есть; иначе она ищет самую позд-
нюю модификацию на ветви по умолчанию.
-f[rev]
вызывает перезапись рабочего файла; полезна в соединении с
-q. См. также ФАЙЛОВЫЕ РЕЖИМЫ ниже.
- 3 -
-kkv Генерирует строки ключевых слов, используя форму по умол-
чанию, например, $Revision: 5.13 $ для ключевого слова
Revision. Имя блокиратора вставляется в заголовок, Id, и в
ключевые строки блокиратора только когда файл блокирует-
ся, т.е. при помощи ci -l и co -l. Это - по умолчанию.
-kkvl Подобна kkv, за исключением того, что имя блокиратора все-
гда вставляется, если данная модификация в этот момент
блокирована.
-kk Генерирует только имена ключевых слов в строках ключевых
слов; опускает их значения. См. ниже ПОДСТАНОВКА КЛЮЧЕВЫХ
СЛОВ. Например, для ключевого слова Revision генерирует
строку $Revision$ вместо $Revision: 5.13 $. Эта опция по-
лезна для игнорирования различий из-за подстановки ключе-
вых слов при сравнении различных модификаций файла. Жур-
нальные записи вставляются после ключевых слов $Log$, даже
если специфицирована -kk, так как это более полезно при
слиянии изменений.
-ko Генерирует старую строку ключевых слов, присутствовавшую в
рабочем файле перед его оформленным вводом. Например, для
ключевого слова Revision генерирует строку $Revision: 1.1
$ вместо $Revision: 5.13 $, если это - содержимое строки
перед оформленным вводом файла. Это может быть полезным
для форматов файла, которые не переносят изменений в под-
строках, которые могут принять форму ключевых строк.
-kb Генерирует двоичный образ старой строки ключевых слов. Она
действует как -ko, за исключением того, что она совершает
все вводы и выводы рабочего файла в двоичном режиме. Это
создает некоторое различие на машинах Posix и Unix, но на
машинах типа DOS надо использовать rcs -i -kb для инициа-
лизации файла RCS, предназначенного для использования как
двоичный файл. К тому же на всех машинах rcsmerge(1) отка-
зывается сливать файлы при действующей -kb.
-kv Генерирует только значения ключевых слов для строк ключевых
слов. Например, для ключевого слова Revision генерирует
- 4 -
строку 5.13 вместо $Revision: 5.13 $. Это может помочь ге-
нерировать файлы на языках программирования, в которых
трудно оторвать ограничители ключевых слов наподобие
$Revision: $ от строки. Однако дальнейшая подстановка клю-
чевых слов не может выполняться, если удалены имена ключе-
вых слов, так что эту опцию надо использовать осторожно.
Из-за такой опасности потери ключевых слов эту опцию нель-
зя комбинировать с -l, и право доступа владельца рабочего
файла на запись выключается; для более позднего редактиро-
вания файла оформленно выведите его снова без -kv.
-p[rev]
печатает найденную модификацию rev на стандартном выходе,
а не сохраняет ее в рабочем файле. Эта опция полезна, ког-
да co - часть выходного канала.
-q[rev]
"молчаливый" режим; диагностика не печатается.
-I[rev]
интерактивный режим; пользователя приглашают и задают воп-
росы, если стандартный вход - не терминал.
-ddate ищет самую позднюю модификацию на выбранной ветви,
дата/время оформленного ввода которой меньше или равно
date. Дату и время можно задавать в свободном формате. Ча-
совой пояс LT обозначает местное время; другие общие имена
часовых поясов понятны. Например, следующие даты эквива-
лентны, если местное время - 11 января 1990 г., 8pm (8 ча-
сов вечера) Тихоокеанского Стандартного Времени, на 8 ча-
сов к западу от Координированного Всемирного Времени (КВВ):
8:00 pm 1t
4:00 AM, Jan. 12, 1990 КВВ по умолчанию
1990-01-12 04:00:00+00 ISO 8601 (КВВ)
1990-01-11 20:00:00-08 ISO 8601
(местное время)
1990/01/12 04:00:00 традиционный формат
RCS
- 5 -
Thu Jan 11 20:00:00 1990 LT выход ctime(3) +LT
Thu Jan 11 20:00:00 PST 1990 выход date(1)
Fri Jan 12 04:00:00 GMT 1990
Thu, 11 Jan 1990 20:00:00 -0800 Internet RFC 822
12-January-1990, 04:00 WET
Большинство полей в дате и времени можно давать по
умолчанию. Часовой пояс по умолчанию - в норме КВВ, но это
можно перезаписать опцией -z. Другие умолчания определены
в порядке - год, месяц, день, час, минуты и секунды (от
большего к меньшему значащему). Должно быть предусмотрено
по крайней мере одно из этих полей. Для пропущенных полей
более высокой значимости, чем наивысшее оставленное поле,
предполагаются текущие значения часового пояса. Для всех
других опущенных полей предполагаются наименьшие возможные
значения. Например, без -z дата 20, 10:30 соответствует по
умолчанию 10:30:00 КВВ 20-го текущего месяца и года часо-
вого пояса КВВ. Дату/время надо взять в кавычки, если там
есть пробелы.
-M[rev]
устанавливает на новом рабочем файле время модифицирова-
ния, равное дате искомой модификации rev. Используйте эту
опцию осторожно; она может нарушить make(1).
-sstate
ищет самую позднюю модификацию на выбранной ветви, чье
состояние установлено на state.
-T Сохраняет время модифицирования в файле RCS, даже если файл
RCS изменяется из-за добавления или удаления блокировки.
Эта опция может подавлять лишнюю перекомпиляцию, вызванную
зависимостью какой-то копии рабочего файла от файла RCS
через make(1). Используйте эту опцию осторожно; она может
подавить перекомпиляцию даже при ее необходимости, т.е.
когда изменение блокировки будет означать изменение в
строках ключевых слов в другом рабочем файле.
-w[login]
- 6 -
ищет самую позднюю модификацию на выбранной ветви, которая
была оформленно введена пользователем с регистрационным
именем login. Если аргумент login опущен, то предполагает-
ся регистрационное имя пользователя.
-jjoinlist
генерирует новую модификацию, которая есть объединение мо-
дификаций в списке joinlist. Эта опция значительно устаре-
ла после введения rcsmerge(1), но оставлена для обратной
совместимости.
joinlist - разделенный запятыми список пар форм rev2:rev3,
где rev2 и rev3 - (символьные или численные) номера моди-
фикаций. Для такой начальной пары rev1 означает модифика-
цию, выбираемую вышеописанными опциями -f,...,-w. Для всех
других пар rev1 означает модификацию, сгенерированную
предыдущей парой. (Таким образом, выход одного соединения
становится входом для следующего.)
Для каждой пары co соединяет модификации rev1 и rev3 по
отношению к rev2. Это означает, что все изменения, кото-
рые преобразуют rev2 в rev1, применяются к копии rev3.
Это, в частности, полезно, если rev1 и rev3 - концы двух
ветвей, имеющих rev2 общим предком. Если rev1