Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ rcsfile(4) — HP-UX 10.20

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ci(1)

co(1)

ident(1)

rcs(1)

rcsdiff(1)

rcsmerge(1)

rlog(1)

rcsintro(5)

rcsfile(4)

NAME

rcsfile − format of RCS files

DESCRIPTION

An RCS file is an ASCII file.  Its contents are described by the grammar below.  The text is free format, i.e., spaces, tabs and new-line characters have no significance except in strings.  Strings are enclosed by "@".  If a string contains the "@" symbol, the symbol must be doubled. 

The meta syntax uses the following conventions:  "|" (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; "<" and ">" enclose nonterminals. 

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

<admin>::=head{<num>};
access{<id>}*;
symbols{<id> : <num>}*;
locks{<id> : <num>}*; {strict ;}
comment{<string>};

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

<desc>::=desc<string>

<deltatext>::=<num>
log<string>
text<string>

<num>::={<digit>{.}}+

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

<id>::=<letter>{<idchar>}*

<letter>::=A | B | ... | Z | a | b | ... | z

<idchar>::=Any printing ASCII character except space,
tab, carriage return, new line, and <special>.

<special>::=; | : | , | @

<string>::=@{any ASCII character, with "@" doubled}*@

Identifiers are case sensitive.  Keywords are in lowercase only.  The sets of keywords and identifiers may overlap. 

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). 

All <delta> nodes whose numbers consist of 2n fields (n≥2) (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 2(n−1) 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. 

For example:

                             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  /
                            \     /
                             \   /
                              \ /

WARNINGS

RCS is designed to be used with TEXT files only.  Attempting to use RCS with non-text (binary) files results in data corruption. 

AUTHOR

rcsfile was developed by Walter F. Tichy, Purdue University, West Lafayette, IN  47907. 
Revision Number:  3.0; Release Date: 83/05/11.
Copyright 1982 by Walter F. Tichy.

SEE ALSO

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

Hewlett-Packard Company  —  HP-UX Release 10.20:  July 1996

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