1RCSFILE(5L) RCSFILE(5L)
2
3
4
6 rcsfile - format of RCS file
7
9 An RCS file is an ASCII file. Its contents are described by the grammar
10 below. The text is free format, i.e., spaces, tabs and new lines have
11 no significance except in strings. Strings are enclosed by `@'. If a
12 string contains a `@', it must be doubled.
13
14 The meta syntax uses the following conventions: `|' (bar) separates
15 alternatives; `{' and `}' enclose optional phrases; `{' and `}*'
16 enclose phrases that may be repeated zero or more times; `{' and '}+'
17 enclose phrases that must appear at least once and may be repeated; `<'
18 and `>' enclose nonterminals.
19
20 <rcstext> ::= <admin> {<delta>}* <desc> {<deltatext>}*
21
22 <admin> ::= head {<num>};
23 branch {<num>};
24 access {<id>}*;
25 symbols {<id> : <num>}*;
26 locks {<id> : <num>}*;
27 comment {<string>};
28
29 <delta> ::= <num>
30 date <num>;
31 author <id>;
32 state {<id>};
33 branches {<num>}*;
34 next {<num>};
35
36 <desc> ::= desc <string>
37
38 <deltatext> ::= <num>
39 log <string>
40 text <string>
41
42
43 <num> ::= {<digit>{.}}+
44
45 <digit> ::= 0 | 1 | ... | 9
46
47 <id> ::= <letter>{<idchar>}*
48
49 <letter> ::= A | B | ... | Z | a | b | ... | z
50
51 <idchar> ::= Any printing ASCII character except space,
52 tab, carriage return, new line, and <special>.
53
54 <special> ::= ; | : | , | @
55
56 <string> ::= @{any ASCII character, with `@' doubled}*@
57
58
59 Identifiers are case sensitive. Keywords are in lower case only. The
60 sets of keywords and identifiers may overlap.
61
62 The <delta> nodes form a tree. All nodes whose numbers consist of a
63 single pair (e.g., 2.3, 2.1, 1.3, etc.) are on the "trunk", and are
64 linked through the next field in order of decreasing numbers. The head
65 field in the <admin> node points to the head of that sequence (i.e.,
66 contains the highest pair). The branch node in the admin node indi‐
67 cates the default branch (or revision) for most RCS operations. If
68 empty, the default branch is the highest branch on the trunk.
69
70 All <delta> nodes whose numbers consist of 2n fields (n≥2) (e.g.,
71 3.1.1.1, 2.1.2.2, etc.) are linked as follows. All nodes whose first
72 (2n)-1 number fields are identical are linked through the next field in
73 order of increasing numbers. For each such sequence, the <delta> node
74 whose number is identical to the first 2(n-1) number fields of the
75 deltas on that sequence is called the branchpoint. The branches field
76 of a node contains a list of the numbers of the first nodes of all
77 sequences for which it is a branchpoint. This list is ordered in
78 increasing numbers.
79
80 Example:
81 Head
82 |
83 |
84 v
85 ---------
86 / \ / \ | | / \ / \
87 / \ / \ | 2.1 | / \ / \
88 / \ / \ | | / \ / \
89 /1.2.1.3\ /1.3.1.1\ | | /1.2.2.2\ /1.2.2.1.1.1\
90 --------- --------- --------- --------- -------------
91 ^ ^ | ^ ^
92 | | | | |
93 | | v | |
94 / \ | --------- / \ |
95 / \ | \ 1.3 / / \ |
96 / \ ---------\ / / \-----------
97 /1.2.1.1\ \ / /1.2.2.1\
98 --------- \ / ---------
99 ^ | ^
100 | | |
101 | v |
102 | --------- |
103 | \ 1.2 / |
104 ----------------------\ /---------
105 \ /
106 \ /
107 |
108 |
109 v
110 ---------
111 \ 1.1 /
112 \ /
113 \ /
114 \ /
115
116
117 Fig. 1: A revision tree
118
120 Author: Walter F. Tichy, Purdue University, West Lafayette, IN, 47907.
121 Revision Number: 1.1 ; Release Date: 87/03/11 .
122 Copyright © 1982 by Walter F. Tichy.
123
125 ci(1L), co(1L), ident(1L), rcs(1L), rcsdiff(1L), rcsmerge(1L),
126 rlog(1L),
127 Walter F. Tichy, "Design, Implementation, and Evaluation of a Revision
128 Control System," in Proceedings of the 6th International Conference on
129 Software Engineering, IEEE, Tokyo, Sept. 1982.
130
131
132
133Purdue University RCSFILE(5L)