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.





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.