rcsfile(5)



NAME

   rcsfile - RCS file format

DESCRIPTION

   An RCS file's contents are described by the grammar below.

   The  text is free format: space, backspace, tab, newline, vertical tab,
   form feed, and carriage return  (collectively,  white  space)  have  no
   significance  except  in  strings.   However, white space cannot appear
   within an id, num, or sym, and an RCS file must end with a newline.

   Strings are enclosed by @.  If a  string  contains  a  @,  it  must  be
   doubled; otherwise, strings can contain arbitrary binary data.

   The  meta  syntax  uses  the following conventions: `|' (bar) separates
   alternatives; `{' and  `}'  enclose  optional  phrases;  `{'  and  `}*'
   enclose  phrases  that can be repeated zero or more times; `{' and '}+'
   enclose phrases that must appear at least once  and  can  be  repeated;
   Terminal symbols are in boldface; nonterminal symbols are in italics.

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

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

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

   desc      ::=  desc       string

   deltatext ::=  num
                  log        string
                  text       string

   num       ::=  {digit | .}+

   digit     ::=  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

   id        ::=  {idchar | .}+

   sym       ::=  {idchar}+

   idchar    ::=  any visible graphic character except special

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

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

   word      ::=  id | num | string | :

   intchar   ::=  any character, except @

   thirdp    ::=  ^L {intchar}*

   intstring ::=  @ {intchar}* {thirdp}* @

   In  releases  prior  to  5.8  (2011-08-30),  the  grammar  included the
   newphrase production and used it in  the  admin,  delta  and  deltatext
   productions.   This  allowed  third-party programs to interoperate with
   RCS by storing opaque (to RCS) data in the file.  As  of  5.8,  in  the
   name  of progress (towards more systematic file integrity support), the
   only area reserved for third-party interop is in the (string) value  of
   the  integrity  field,  specifically  after the first ^L (formfeed).  A
   further restriction (for all programs) is that the integrity value must
   not contain @.

   Identifiers  are case sensitive.  Keywords are in lower case only.  The
   sets of keywords and identifiers can overlap.  In most environments RCS
   uses  the  ISO  8859/1  encoding:  visible graphic characters are codes
   041-176 and 240-377, and white space characters are codes  010-015  and
   040.

   Dates,   which   appear  after  the  date  keyword,  are  of  the  form
   Y.mm.dd.hh.mm.ss, where Y is the year, mm the month (01-12), dd the day
   (01-31),  hh the hour (00-23), mm the minute (00-59), and ss the second
   (00-60).  Y contains just the last two digits of  the  year  for  years
   from  1900 through 1999, and all the digits of years thereafter.  Dates
   use the Gregorian calendar; times use UTC.

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

   All delta nodes  whose  numbers  consist  of  2n  fields  (n2)  (e.g.,
   3.1.1.1,  2.1.2.2, etc.)  are linked as follows.  All nodes whose first
   2n-1 number fields are identical are linked through the next  field  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 field 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 diagram shows an example of an RCS file's organization.

                              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.3.1       \   /     /1.2.2.1\     1.2.2.1.1
   ---------                   \ /      ---------
       ^                        |           ^
       |                        |           |
       |                        v           |
       |                    ---------       |
       |                    \  1.2  /       |
       ----------------------\     /---------
     1.2.1                    \   /       1.2.2
                               \ /
                                |
                                |
                                v
                            ---------
                            \  1.1  /
                             \     /
                              \   /
                               \ /

IDENTIFICATION

   Author: Walter F. Tichy.
   Manual Page Revision: 5.9.4; Release Date: 2015-06-21.
   Copyright  2010-2015 Thien-Thi Nguyen.
   Copyright  1990, 1991, 1992, 1993, 1994, 1995 Paul Eggert.
   Copyright  1982, 1988, 1989 Walter F. Tichy.

SEE ALSO

   ci(1), co(1), ident(1), rcs(1), rcsclean(1),  rcsdiff(1),  rcsmerge(1),
   rlog(1).

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

   The full documentation for RCS is maintained as a Texinfo  manual.   If
   the  info(1)  and RCS programs are properly installed at your site, the
   command

          info rcs

   should give you access to the complete manual.  Additionally,  the  RCS
   homepage:

          http://www.gnu.org/software/rcs/

   has news and links to the latest release, development site, etc.




Free and Open Source Software


Free Software Video

Useful Programs

Free Online Courses

Open Opportunity

Open Business