rcsfile(4) DG/UX 4.30 rcsfile(4)
NAME
rcsfile - format of RCS file
DESCRIPTION
An RCS file is an ASCII file. Its contents are described by
the grammar below. The text is free format, that is,
spaces, tabs and new lines have no significance except in
strings. Strings are enclosed by `@'. For a string to
contain a `@', the '@' must be doubled.
The meta-syntax uses the following conventions: `|' (bar)
separates alternatives; `{' and `}' enclose optinal 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>}*;
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> ::= ; | : | , | @
Licensed material--property of copyright holder(s) Page 1
rcsfile(4) DG/UX 4.30 rcsfile(4)
<string> ::= @{any ASCII character, with `@' doubled}*@
Identifiers are case sensitive. Keywords are 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 (where
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.
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 / |
----------------------\ /---------
\ /
\ /
Licensed material--property of copyright holder(s) Page 2
rcsfile(4) DG/UX 4.30 rcsfile(4)
|
|
v
---------
\ 1.1 /
\ /
\ /
\ /
Fig. 1: A Revision Tree
SEE ALSO
ci(1), co(1), ident(1), rcs(1), rcsdiff(1), rcsintro(1),
rcsmerge(1), rlog(1), sccstorcs(8).
Licensed material--property of copyright holder(s) Page 3