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 для удаления символического имени версии в явном виде.