RCSFILE(5L) RCSFILE(5L)
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, i.e.,
spaces, tabs and new lines have no significance except in
strings. Strings are enclosed by `@'. If a string
contains a `@', it 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>};
branch {<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> ::= ; | : | , | @
University Purdue 1
RCSFILE(5L) RCSFILE(5L)
<string> ::= @{any ASCII character, with `@' doubled}*@
Identifiers are case sensitive. Keywords are in lower case
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). 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
(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.
University Purdue 2
RCSFILE(5L) RCSFILE(5L)
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 /
\ /
\ /
\ /
Fig. 1: A revision tree
IDENTIFICATION
Author: Walter F. Tichy, Purdue University, West
Lafayette, IN, 47907.
Revision Number: 1.2 ; Release Date: 89/05/02 .
Copyright (C) 1982, 1988, 1989 by Walter F. Tichy.
SEE ALSO
ci(1L), co(1L), ident(1L), rcs(1L), rcsdiff(1L),
rcsmerge(1L), rlog(1L),
Walter F. Tichy, "Design, Implementation, and Evaluation
of a Revision Control System," in Proceedings of the 6th
International Conference on Software Engineering, IEEE,
Tokyo, Sept. 1982.
University Purdue 3