rcsfile - формат файла RCS

rcsfile - формат файла RCS

rcsfile - формат файла RCS



С О Д Е Р Ж А Н И Е
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.