Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ci(1)

co(1)

ident(1)

rcs(1)

rcsdiff(1)

rcsfreeze(1)

rcsintro(1)

rcsmerge(1)

rlog(1)



  rcsfile(4)                          CLIX                          rcsfile(4)



  NAME

    rcsfile - Revision Control Source (RCS) file format

  DESCRIPTION

    The rcsfile file shows the format of a Revision Control Source (RCS) file.

    The text in the file is free format.  The space, backspace, tab, newline,
    vertical tab, form feed, and carriage return (all known as white space)
    have no significance except in strings.  However, an RCS file must end in
    a newline character.

    Strings are enclosed with an at sign (@).  If a string contains an @, it
    must be written twice; otherwise, strings may contain arbitrary binary
    data.

    The file syntax uses the following conventions: a bar (|) separates
    alternatives; { and } enclose optional phrases; { and }* enclose phrases
    that may be repeated zero or more times;  { and }+ enclose phrases that
    must appear at least once and may be repeated.

    In the syntax give below, terminal symbols are in shown in boldface type.
    The nonterminal symbols are in italic type.

    rcstext   ::=  admin {delta}* desc {deltatext}*

    admin     ::=  head {num};
              { branch  {num}; }
              access    {id}*;
              symbols   {id : num}*;
              locks     {id : num}*;  {strict  ;}
              { comment {string}; }
              { expand  {string}; }
              { newphrase }*

    delta     ::=  num
              date num;
              author    id;
              state     {id};
              branches  {num}*;
              next {num};
              { newphrase }*

    desc ::=  desc string

    deltatext ::=  num
              log  string
              { newphrase }*
              text string




  2/94 - Intergraph Corporation                                              1






  rcsfile(4)                          CLIX                          rcsfile(4)



    num  ::=  {digit{.}}+

    digit     ::=  0 | 1 | ... | 9

    id   ::=  letter{idchar}*

    letter    ::=  any letter

    idchar    ::=  any visible graphic character except special

    special   ::=  $ | , | . | : | ; | @

    string    ::=  @{any character, with @ doubled}*@

    newphrase ::=  id word* ;

    word ::=  id | num | string | :


    The identifiers are case sensitive.  Keywords may appear in lower case
    only.  The sets of keywords and identifiers may overlap.

    In most environments, RCS uses the ISO 8859/1 encoding as follows:
    letters are octal codes 101-132, 141-172, 300-326, 330-366 and 370-377;
    visible graphic characters are codes 041-176 and 240-377, and white space
    characters are codes 010-015 and 040.

    The newphrase identifier in the grammar is reserved for future extensions
    to the format of RCS files.  No newphrase identifier will begin with any
    keyword already in use.

    The delta identifier nodes form a tree.  All nodes whose numbers consist
    of a single pair (for example, 2.3, 2.1, 1.3, and so on) are on the trunk,
    and are linked through the next keyword in order of decreasing numbers.
    The head keyword in the admin identifier node points to the head of that
    sequence (that is, contains the highest pair).  The branch keyword in the
    admin identifier section indicates the default branch (or revision) for
    most RCS operations.  If the keyword is empty, the default branch is the
    highest branch on the trunk.

    All delta nodes whose numbers consist of 2n fields (for example, n=2, and
    the numbers are 3.1.1.1, 2.1.2.2, and so on) are linked as follows.  All
    nodes whose first 2n -1 number fields are identical are linked through the
    next keyword in order of increasing numbers.  For each such sequence, the
    delta node whose number is identical to the first 2n -2 number fields of
    the deltas on that sequence is called the branchpoint.  The branches
    keyword of a node contains a list of the numbers of the first nodes of all
    sequences for which it is a branchpoint.  This list is ordered in
    increasing numbers.

    The following example shows how a revision tree is structured.



  2                                              Intergraph Corporation - 2/94






  rcsfile(4)                          CLIX                          rcsfile(4)



                               Head
                                 |
                                 |
                                 v                        / \
                             ---------                   /   \
       / \          / \      |       |      / \         /     \
      /   \        /   \     |  2.1  |     /   \       /       \
     /     \      /     \    |       |    /     \     /         \
    /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  /
                              \     /
                               \   /
                                \ /

                            Figure 1.  A Revision Tree

  RELATED INFORMATION

    Commands:  ci(1), co(1), ident(1), rcs(1), rcsdiff(1), rcsfreeze(1),
    rcsintro(1), rcsmerge(1), rlog(1)

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










  2/94 - Intergraph Corporation                                              3




Typewritten Software • bear@typewritten.org • Edmonds, WA 98026