RCS(1)
КОМАНДЫ ПОЛЬЗОВАТЕЛЯ

НАЗВАНИЕ

rcs - изменение внутренних атрибутов архивного файла

СИНТАКСИС


	rcs флаги имя-файла ...

ОПИСАНИЕ

Команда rcs создает новый архивный файл в системе отслеживания версий RCS , или изменяет атрибуты существующего. Архивный файл содержит набор версий рабочего файла, список лиц имеющих доступ к изменению файла, историю изменений файла и некие внутренние управляющие атрибуты. Пользователь может работать с командой rcs , если выполнено одно из следующих условий: либо он уже внесен в список лиц имеющих доступ к изменению файла, либо этот список пуст, либо пользователь является владельцем файла или системным администратором, либо команда выполняется с флагом -i .

Полное имя файла, содержащее архивный суффикс, соответствует архивному файлу, все прочие считаются рабочими файлами. О соответствии имен файлов, см. ci(1) . Там же описаны способы задания номеров версий.

ФЛАГИ

-i
Создает и инициализирует новый архивный файл, не занося в него никаких версий рабочего файла. Если не задан путь к архивному файлу, она сначала пытается поместить архив в подкаталоге RCS , затем, в текущем каталоге. Если архив уже существует, выдает сообщение об ошибке.

-alogins
Добавляет имена, перечисленные в строке без пробелов logins в список лиц имеющих доступ к изменению файла. В качестве разделителей используются запятые.

-Aoldfile
Добавляет имена, перечисленные в списке лиц имеющих доступ к изменению файла oldfile к списку лиц имеющих доступ к изменению данного файла.

-e[logins]
Удаляет имена, перечисленные в строке без пробелов logins из списка лиц имеющих доступ к изменению файла. В качестве разделителей используются запятые. Если строка logins отсутствует, полностью очищает этот список.

-b[rev]
Устанавливает номер ветви, которая будет использована по умолчанию, равным rev . Если rev опущен, то по умолчанию используется (динамически) самая последняя побочная ветвь версий, отходящая от главной.

-cstring
Устанавливает префикс для комментариев. При первоначальной регистрации файла без инициализации командой ci или с инициализацией командой rcs -i без этого флага, RCS определяет способ задания комментариев по расширению имени рабочего файла.

флаг сохранен исключительно для совместимости с предыдущими версиями, поскольку при включении истории изменений в рабочий файл по ключевому слову $Log$ , RCS вставляет префикс, заданный этим ключевым словом, при востребовании из архива (см. co(1)). Однако, старые версии RCS используют в таком случае префикс, заданный данным флагом. Следовательно, если Вы планируете использовать и старые и новые версии, позаботьтесь о соответствии префикса в строке с $Log$ и префикса для комментариев.

-ksubst
Устанавливает правила подстановки ключевых символов. Возможные правила subst описаны в co(1). Явное задание флага -k в командах co, rcsdiff и rcsmerge подавит заданное по умолчанию значение. Используйте rcs -kv с осторожностью, поскольку -kv несовместно с co -l. Для восстановления обычных правил подстановки, используйте rcs -kkv .

-l[rev]
Бронирует для пользователя последнюю версию из тех, чей номер меньше или равен rev . Если rev задает номер ветви, то последнюю версию на этой ветви из тех, чей номер меньше или равен rev . Если rev опущен, то бронируется последняя версия ветви, используемой по умолчанию. Бронирование необходимо для предотвращения накладывающихся друг на друга изменений вносимых разными пользователями. Правило отмены бронирования, в случае, если кто-то забронировал файл до Вас такое же, как и в случае rcs -u (см. ниже).

-u[rev]
Отменяет бронирование версии rev . Если задана не версия а ветвь, то последней версии на данной ветви, а если rev отсутствует, то последнее бронирование, сделанное данным пользователем. При нормальных обстоятельствах, только сам забронировавший версию отменяет бронирование. Если это делает кто-то другой из имеющих на это право, то посылается сообщение об отмене бронирования по электронной почте. При этом отменяющему предлагается приложить к этому сообщению комментарий, содержащий причины такого поступка. Как и регистрационный комментарий, это сообщение должно оканчиваться символом конца файла, либо строкой, содержащей единственную точку.

-L
Устанавливает строгий режим бронирования, что означает распространение всех ограничений на работу с файлом и на владельца файла. Нормальный режим доступа к файлам которые поддерживаются группой.

-U
Устанавливает нестрогий режим бронирования. Владелец файла не обязан бронировать файл для внесения последующих изменений. Упрощает работу с файлами, которые поддерживает один человек. Режим бронирования, задаваемый по умолчанию, задается системным администратором, но, как правило, он строгий.

-mrev:msg
Заменить регистрационную запись для версии rev строкой msg .

-M
Не посылать сообщение об отмене бронирования. Предполагается, что этот флаг будут использовать только программы, уведомляющие об этом другими средствами и использующие rcs -u как вспомогательную операцию.

-nname[:[rev]]
Связать символическое имя name с ветвью или версией rev . Удалить символическое имя name , если отсутствуют и rev и двоеточие; в ином случае, если имя name связано с другой версией, выдать сообщение об ошибке. Если rev -- символический номер, то подстановка номера в rev осуществляется до связывания c name . Если rev является номером ветви, оканчивающимся точкой, то связывается последняя версия ветви, двоеточие без номера версии означает последнюю версию на ветви, используемой по умолчанию, обычно на главной. Например,

     rcs -nname: RCS/*

свяжет с именем name последние версии всех файлов имеющихся в архивном каталоге. В тоже время, команда

     rcs -nname:$ RCS/*

свяжет с именем name те версии файлов, которые она определит по маркерам в рабочих файлах, а они не обязаны быть последними версиями.

-Nname[:[rev]]
Действует так же, как и -n, но безусловно отменяет старое значение name, если таковое было задано.

-orange
Удалить из архива версии из промежутка range. Если range состоит из одной версии, удалить эту версию, если range является номером ветви, то удалить последнюю версию данной ветви. Если range имеет вид rev1:rev2 то удалить все версии начиная с rev1 и кончая rev2 включительно, на одной ветвиЖ :rev означает промежуток от начала соответствующей ветви до rev включительно; rev: означает промежуток от rev до конца соответствующей ветви включительно. Ни одна из удаляемых версий не должна быть забронирована или служить началом побочной ветви.

-q
Не печатать никаких сообщений.

-I
Задать диалоговый режим, даже если ввод осуществляется не с терминала.

-sstate[:rev]
Придать версии rev статус state . Если rev задает номер ветви, то последней версии на этой ветви из тех, чей номер меньше или равен rev . Если rev опущен, то последней версии ветви, используемой по умолчанию. В качестве state можно использовать любой идентификатор. Рекомендуются к использованию: Exp (экспериментальная), Stab (стабильная), и Rel (выпуск). По умолчанию статус Exp.

-t[file]
Использовать содержимое файла file в качестве описания регистрируемого файла. Старое описание затирается. Ограничение: минус не может быть первым символом в имени file. Если имя файла не задано, подразумевается стандартный ввод, сообщение с которого должно оканчиваться символом конца файла, либо строкой, содержащей единственную точку. Выдается приглашение к вводу, если возможен диалог, см. -I. Описание требуется при флаге -i, даже если флаг -t не задан.

-t-string
То же, что и предыдущий флаг, но описание задается в командной строке.

-T
Сохраняет дату и время последнего изменения рабочего файла даже если в нем были изменены значения ключевых символов, если только не была удалена версия. Такое поведение флага вводит в заблуждению команду make(1) и, потому необходима осторожность. Флаг -T позволяет избежать ненужных построений (компиляций), но она может подавить их и тогда, когда изменение идентификационных маркеров существено для результата построения.

-V
Посылает номер версии RCS на стандартный вывод.

-Vn
Имитирует поведение версии n комплекса программ RCS . См. co(1) .

-xsuffixes
Задает суффикс, добавляемый к имени архивного файла. См. ci(1) .

-zzone
Присутствует исключительно для совместимости с другими командами RCS , для которых задает формат даты при подстановке ключевых слов в маркеры и часовой пояс для флага -ddate .

Для совместимости с будущими версиями требуется явное задание хотя бы одного флага.

СОВМЕСТИМОСТЬ
Флаг -brev порождает архивные файлы, которые не могут быть правильно восприняты системой RCS версии 3 или более ранней.

Флаг -ksubst (кроме -kkv) порождает архивные файлы, которые не могут быть правильно восприняты системой RCS версии 4 или более ранней.

Для того, чтобы привести архив в вид, который может быть правильно восприняты системой RCS версии n , примените команду rcs -Vn .

Система RCS до версии 5.5 не поддерживала флаг -x и требовала суффикс ,v .

ФАЙЛЫ
Команда rcs работает с файлами так же, как команда ci(1) , но использует права доступа логического (effective) пользователя, т.е. права пользователя, вызвавшего эту команду. Кроме того, ей не требуется право на изменение рабочего файла, более того, она открывает рабочий файл для чтения, только в случае, когда номер версии задан как $ .

ПЕРЕМЕННЫЕ СРЕДЫ

LOGNAME
Имя пользователя. В UNIX задано автоматически, в MS-DOS требуется задать явно командой

     set LOGNAME=имя-пользователя

TZ
Часовой пояс. В UNIX задан автоматически, в MS-DOS требуется задать явно командой set.

RCSINIT
Список флагов используемых со всеми командами системы отслеживания версий RCS. См. ci(1) .

СООБЩЕНИЯ
Печатает имя архивного файла, и номера удаляемой версии. Возвращает операционной системе 0 тогда и только тогда, когда все операции завершились успешно.

СМ. ТАКЖЕ
rcsintro(1), co(1), ci(1), ident(1), rcsclean(1), rcsdiff(1), rcsmerge(1), rlog(1), rcsfile(5)

Walter F. Tichy, RCS--A System for Version Control, Software--Practice & Experience 15, 7 (July 1985), 637-654.

Copyright (C) Walter F. Tichy, Paul Eggert.

ПРОБЛЕМЫ
При системном сбое, например вызвавшем перезапуск, могут оставаться сигнальные файлы (см. ci(1) ВРЕМЕННЫЕ ФАЙЛЫ И ЛИНКИ), которые содержат информацию о том, что в данное время идет работа с архивным файлом, что не даст его изменить. Положение легко исправить, удалив сигнальные файлы, имена которых обычно или начинаются с запятой, или заканчиваются на символ подчеркивания.

Из-за совместимости с предыдущими версиями RCS , в которых в качестве разделителя использовался минус вместо двоеточия, возникают проблемы с символическими номерами версий, начинающимися с минуса. Команда rcs -o воспримет минус как разделитель, но сообщит о неудачном выборе символического имени.

Символические имена не обязаны указывать на хранящиеся в архиве версии. Флаг -o не удалит символические имена, ссылающиеся на удаленную версию, и нужно использовать флаг -n для удаления символического имени версии в явном виде.