1. ИМЯ 1
2. ОПИСАНИЕ 1
3. ИДЕНТИФИКАЦИЯ 4
4. СМ. ТАКЖЕ 4
1. ИМЯ
rcsfile - формат файла RCS.
2. ОПИСАНИЕ
Содержимое файла RCS описывается приводимой ниже грамматикой.
Текст - в свободном формате: пробел, обратный пробел, табуляция,
нов_строка, вертикальная табуляция, прогон страницы и возврат ка-
ретки (в совокупности - пробельные символы) не имеют значения,кроме
как в строках. Однако пробельные символы не могут появляться внутри
id, num или sym, и файл RCS должен кончаться нов_строкой.
Строки (цепочки) заключены в @. Если строка содержит @, то @ должна
быть удвоена; в ином случае строка может содержать произвольные
двоичные данные.
Мета-синтаксис использует следующие соглашения: `|' разделяет аль-
тернативы; `{' и `}' окружают опциональные фразы; `{' и `}*' окру-
жают фразы, которые надо повторить 0 или более раз; `{' и ` }+' ок-
ружают фразы, которые должны появиться хотя бы один раз и могут
повторяться; терминальные символы даются жирным шрифтом; нетерми-
нальные - курсивом.
rcstext ::= admin {delta}* desc {deltatext}*
admin ::= head {num};
{ branch {num}; }
access {id}*;
symbols {sym : num}*;
locks {id : num}*; {strict ;}
{ comment {string}; }
{ expand {string}; }
{ newphrase }*
delta ::= num
date num;
- 2 -
author id;
state {id};
branches {num}*;
next {num};
{ newphrase }*
desc ::= desc string
deltatext ::= num
log string
{ newphrase }*
text string
num ::= {digit | .}+
digit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
id ::= {num} idchar {idchar | num}*
sym ::= {digit}* idchar {idchar | digit}*
idchar ::= любой вводимый графический символ, кроме
специальных
special ::= $ | , | . | : | ; | @
string ::= @{любой символ с удвоением @}*@
newphrase ::= id word* ;
word ::= id | num | string | :
В идентификаторах различается величина символов. Ключевые слова да-
ются только строчными символами. Наборы ключевых слов и идентифика-
торов могут пересекаться. В большинстве сред RCS использует
кодировку ISO 8859/1: видимые графические символы - это коды
041-176 и 240-377, а пробельные символы - 010-015 и 040.
Даты, появляющиеся после ключевого слова date, имеют форму
- 3 -
Г.мм.дд.чч.мм.сс, где Г - год, мм - месяц (01-12), дд - день
(01-31), чч - час (00-23), мм - минута (00-59) и сс - секунда
(00-60). Г содержит только две последние цифры года для годов 1990-
1999 и все цифры для последующих лет. Даты используют григорианский
календарь; время - КВВ.
Продукции newphrase в этой грамматике резервируются для будущих
расширений формата файлов RCS. newphrase не должна начинаться с лю-
бого уже употребляемого ключевого слова.
Узлы delta образуют дерево. Все узлы, чьи номера состоят из одной
пары (например, 2.1, 2.3, 1.3 и т.д.), находятся на стволе и связа-
ны через следующее поле в порядке уменьшения номеров. Головное поле
в узле admin указывает на голову этой последовательности (т.е. со-
держит наивысшую пару). Узел branch в узле admin указывает на ветвь
по умолчанию (или на модификацию) для большинства операций RCS. Ес-
ли он пуст, то ветвь по умолчанию - это наивысшая ветвь на стволе.
Все узлы delta, чьи номера состоят из 2n полей (n>=2) (например,
3.1.1.1, 2.1.2.2 и т.д.), связаны следующим образом. Все узлы, чьи
первые 2n-1 поля номера идентичны, связываются через следующее поле
в порядке возрастания номеров. Для каждой такой последовательности
узел delta, чей номер идентичен первым 2n-2 полям номера узлов
delta в этой последовательности, называется узловой точкой. Поле
ветвей узла содержит список номеров первых узлов всех последова-
тельностей, для которых существует узловая точка. Этот список упо-
рядочен по возрастанию номеров.
Следующая диаграмма показывает пример организации файла RCS.
Голова
|
|
V / \
--------- / \
/ \ / \ | | / \ / \
/ \ / \ | 2.1 | / \ / \
/ \ / \ | | / \ / \
- 4 -
/1.2.1.3\ /1.3.1.1\ | | /1.2.2.2\ /1.2.2.1.1.1\
--------- --------- --------- --------- -------------
^ ^ | ^ ^
| | | | |
| | V | |
/ \ | --------- / \ |
/ \ | \ 1.3 / / \ |
/ \ ---------\ / / \-----------
/1.2.1.1\ \ / /1.2.2.1\
--------- \ / ---------
^ | ^
| | |
| V |
| --------- |
| \ 1.2 / |
---------------------\ /---------
\ /
\ /
|
|
V
---------
\ 1.1 /
\ /
\ /
\ /
3. ИДЕНТИФИКАЦИЯ
Автор: Walter F. Tichy, Purdue University, West
Lafayette, IN, 47907.
Manual Page Revision: 5.6; Release Date: 1995/06/05.
Copyright (C) 1982, 1988, 1989 Walter F. Tichy.
Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995 Paul
Eggert.
4. СМ. ТАКЖЕ
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.