111891Speter.lf 1 ./rcsfile.5in 211891Speter.\" Set p to 1 if your formatter can handle pic output. 311891Speter.if t .nr p 1 49Sjkh.de Id 59Sjkh.ds Rv \\$3 69Sjkh.ds Dt \\$4 79Sjkh.. 850472Speter.Id $FreeBSD$ 99Sjkh.ds r \s-1RCS\s0 109Sjkh.if n .ds - \%-- 119Sjkh.if t .ds - \(em 129Sjkh.TH RCSFILE 5 \*(Dt GNU 139Sjkh.SH NAME 149Sjkhrcsfile \- format of RCS file 159Sjkh.SH DESCRIPTION 169SjkhAn \*r file's 179Sjkhcontents are described by the grammar 189Sjkhbelow. 199Sjkh.PP 209SjkhThe text is free format: space, backspace, tab, newline, vertical 219Sjkhtab, form feed, and carriage return (collectively, 229Sjkh.IR "white space") 239Sjkhhave no significance except in strings. 2411891SpeterHowever, white space cannot appear within an id, num, or sym, 2511891Speterand an \*r file must end with a newline. 269Sjkh.PP 279SjkhStrings are enclosed by 289Sjkh.BR @ . 299SjkhIf a string contains a 309Sjkh.BR @ , 319Sjkhit must be doubled; 3211891Speterotherwise, strings can contain arbitrary binary data. 339Sjkh.PP 349SjkhThe meta syntax uses the following conventions: `|' (bar) separates 359Sjkhalternatives; `{' and `}' enclose optional phrases; `{' and `}*' enclose 3611891Speterphrases that can be repeated zero or more times; 3711891Speter`{' and '}+' enclose phrases that must appear at least once and can be 389Sjkhrepeated; 399SjkhTerminal symbols are in 409Sjkh.BR boldface ; 419Sjkhnonterminal symbols are in 429Sjkh.IR italics . 439Sjkh.LP 4411891Speter.nr w \w'\f3deltatext\fP ' 4511891Speter.nr y \w'\f3newphrase\fP ' 4611891Speter.if \nw<\ny .nr w \ny 479Sjkh.nr x \w'\f3branches\fP' 489Sjkh.nr y \w'{ \f3comment\fP' 499Sjkh.if \nx<\ny .nr x \ny 509Sjkh.nr y \w'\f3{ branch\fP' 519Sjkh.if \nx<\ny .nr x \ny 5211891Speter.ta \nwu +\w'::= 'u +\nxu+\w' 'u 5311891Speter.fc # 549Sjkh.nf 559Sjkh\f2rcstext\fP ::= \f2admin\fP {\f2delta\fP}* \f2desc\fP {\f2deltatext\fP}* 569Sjkh.LP 579Sjkh\f2admin\fP ::= \f3head\fP {\f2num\fP}\f3;\fP 589Sjkh { \f3branch\fP {\f2num\fP}\f3;\fP } 599Sjkh \f3access\fP {\f2id\fP}*\f3;\fP 6011891Speter \f3symbols\fP {\f2sym\fP \f3:\fP \f2num\fP}*\f3;\fP 619Sjkh \f3locks\fP {\f2id\fP \f3:\fP \f2num\fP}*\f3;\fP {\f3strict ;\fP} 629Sjkh { \f3comment\fP {\f2string\fP}\f3;\fP } 639Sjkh { \f3expand\fP {\f2string\fP}\f3;\fP } 649Sjkh { \f2newphrase\fP }* 659Sjkh.LP 669Sjkh\f2delta\fP ::= \f2num\fP 679Sjkh \f3date\fP \f2num\fP\f3;\fP 689Sjkh \f3author\fP \f2id\fP\f3;\fP 699Sjkh \f3state\fP {\f2id\fP}\f3;\fP 709Sjkh \f3branches\fP {\f2num\fP}*\f3;\fP 719Sjkh \f3next\fP {\f2num\fP}\f3;\fP 729Sjkh { \f2newphrase\fP }* 739Sjkh.LP 749Sjkh\f2desc\fP ::= \f3desc\fP \f2string\fP 759Sjkh.LP 769Sjkh\f2deltatext\fP ::= \f2num\fP 779Sjkh \f3log\fP \f2string\fP 789Sjkh { \f2newphrase\fP }* 799Sjkh \f3text\fP \f2string\fP 809Sjkh.LP 8111891Speter\f2num\fP ::= {\f2digit\fP | \f3.\fP}+ 829Sjkh.LP 8311891Speter\f2digit\fP ::= \f30\fP | \f31\fP | \f32\fP | \f33\fP | \f34\fP | \f35\fP | \f36\fP | \f37\fP | \f38\fP | \f39\fP 849Sjkh.LP 8511891Speter\f2id\fP ::= {\f2num\fP} \f2idchar\fP {\f2idchar\fP | \f2num\fP}* 869Sjkh.LP 8711891Speter\f2sym\fP ::= {\f2digit\fP}* \f2idchar\fP {\f2idchar\fP | \f2digit\fP}* 889Sjkh.LP 899Sjkh\f2idchar\fP ::= any visible graphic character except \f2special\fP 909Sjkh.LP 919Sjkh\f2special\fP ::= \f3$\fP | \f3,\fP | \f3.\fP | \f3:\fP | \f3;\fP | \f3@\fP 929Sjkh.LP 939Sjkh\f2string\fP ::= \f3@\fP{any character, with \f3@\fP doubled}*\f3@\fP 949Sjkh.LP 959Sjkh\f2newphrase\fP ::= \f2id\fP \f2word\fP* \f3;\fP 969Sjkh.LP 979Sjkh\f2word\fP ::= \f2id\fP | \f2num\fP | \f2string\fP | \f3:\fP 989Sjkh.fi 999Sjkh.PP 1009SjkhIdentifiers are case sensitive. Keywords are in lower case only. 10111891SpeterThe sets of keywords and identifiers can overlap. 10211891SpeterIn most environments \*r uses the \s-1ISO\s0 8859/1 encoding: 1039Sjkhvisible graphic characters are codes 041\-176 and 240\-377, 1049Sjkhand white space characters are codes 010\-015 and 040. 1059Sjkh.PP 10611891SpeterDates, which appear after the 10711891Speter.B date 10811891Speterkeyword, are of the form 10911891Speter\f2Y\fP\f3.\fP\f2mm\fP\f3.\fP\f2dd\fP\f3.\fP\f2hh\fP\f3.\fP\f2mm\fP\f3.\fP\f2ss\fP, 11011891Speterwhere 11111891Speter.I Y 11211891Speteris the year, 11311891Speter.I mm 11411891Speterthe month (01\-12), 11511891Speter.I dd 11611891Speterthe day (01\-31), 11711891Speter.I hh 11811891Speterthe hour (00\-23), 11911891Speter.I mm 12011891Speterthe minute (00\-59), 12111891Speterand 12211891Speter.I ss 12311891Speterthe second (00\-60). 12411891Speter.I Y 12511891Spetercontains just the last two digits of the year 12611891Speterfor years from 1900 through 1999, 12711891Speterand all the digits of years thereafter. 12811891SpeterDates use the Gregorian calendar; times use UTC. 12911891Speter.PP 1309SjkhThe 1319Sjkh.I newphrase 1329Sjkhproductions in the grammar are reserved for future extensions 1339Sjkhto the format of \*r files. 1349SjkhNo 1359Sjkh.I newphrase 1369Sjkhwill begin with any keyword already in use. 1379Sjkh.PP 1389SjkhThe 1399Sjkh.I delta 1409Sjkhnodes form a tree. All nodes whose numbers 1419Sjkhconsist of a single pair 1429Sjkh(e.g., 2.3, 2.1, 1.3, etc.) 1439Sjkhare on the trunk, and are linked through the 1449Sjkh.B next 1459Sjkhfield in order of decreasing numbers. 1469SjkhThe 1479Sjkh.B head 1489Sjkhfield in the 1499Sjkh.I admin 1509Sjkhnode points to the head of that sequence (i.e., contains 1519Sjkhthe highest pair). 1529SjkhThe 1539Sjkh.B branch 1549Sjkhnode in the admin node indicates the default 1559Sjkhbranch (or revision) for most \*r operations. 1569SjkhIf empty, the default 1579Sjkhbranch is the highest branch on the trunk. 1589Sjkh.PP 1599SjkhAll 1609Sjkh.I delta 1619Sjkhnodes whose numbers consist of 1629Sjkh.RI 2 n 1639Sjkhfields 16411891Speter.RI ( n \(>=2) 1659Sjkh(e.g., 3.1.1.1, 2.1.2.2, etc.) 1669Sjkhare linked as follows. 1679SjkhAll nodes whose first 1689Sjkh.RI 2 n \-1 1699Sjkhnumber fields are identical are linked through the 1709Sjkh.B next 1719Sjkhfield in order of increasing numbers. 1729SjkhFor each such sequence, 1739Sjkhthe 1749Sjkh.I delta 1759Sjkhnode whose number is identical to the first 1769Sjkh.RI 2 n \-2 1779Sjkhnumber fields of the deltas on that sequence is called the branchpoint. 1789SjkhThe 1799Sjkh.B branches 1809Sjkhfield of a node contains a list of the 1819Sjkhnumbers of the first nodes of all sequences for which it is a branchpoint. 1829SjkhThis list is ordered in increasing numbers. 1839Sjkh.LP 18411891SpeterThe following diagram shows an example of an \*r file's organization. 18511891Speter.if !\np \{\ 1869Sjkh.nf 1879Sjkh.vs 12 18811891Speter.ne 36 1899Sjkh.cs 1 20 1909Sjkh.eo 1919Sjkh 1929Sjkh Head 1939Sjkh | 1949Sjkh | 1959Sjkh v / \ 1969Sjkh --------- / \ 1979Sjkh / \ / \ | | / \ / \ 1989Sjkh / \ / \ | 2.1 | / \ / \ 1999Sjkh / \ / \ | | / \ / \ 2009Sjkh/1.2.1.3\ /1.3.1.1\ | | /1.2.2.2\ /1.2.2.1.1.1\ 2019Sjkh--------- --------- --------- --------- ------------- 2029Sjkh ^ ^ | ^ ^ 2039Sjkh | | | | | 2049Sjkh | | v | | 2059Sjkh / \ | --------- / \ | 2069Sjkh / \ | \ 1.3 / / \ | 2079Sjkh / \ ---------\ / / \----------- 2089Sjkh/1.2.1.1\ \ / /1.2.2.1\ 2099Sjkh--------- \ / --------- 2109Sjkh ^ | ^ 2119Sjkh | | | 2129Sjkh | v | 2139Sjkh | --------- | 2149Sjkh | \ 1.2 / | 2159Sjkh ----------------------\ /--------- 2169Sjkh \ / 2179Sjkh \ / 2189Sjkh | 2199Sjkh | 2209Sjkh v 2219Sjkh --------- 2229Sjkh \ 1.1 / 2239Sjkh \ / 2249Sjkh \ / 2259Sjkh \ / 2269Sjkh 2279Sjkh.ec 2289Sjkh.cs 1 2299Sjkh.vs 2309Sjkh.fi 23111891Speter.\} 23211891Speter.if \np \{\ 23311891Speter.lf 232 23411891Speter.PS 4.250i 3.812i 23511891Speter.\" -2.0625 -4.25 1.75 0 23611891Speter.\" 0.000i 4.250i 3.812i 0.000i 23711891Speter.nr 00 \n(.u 23811891Speter.nf 23911891Speter.nr 0x 1 24011891Speter\h'3.812i' 24111891Speter.sp -1 24211891Speter.lf 242 24311891Speter\h'2.062i-(\w'Head'u/2u)'\v'0.125i-(0v/2u)+0v+0.22m'Head 24411891Speter.sp -1 24511891Speter\h'2.062i'\v'0.250i'\D'l0.000i 0.500i' 24611891Speter.sp -1 24711891Speter\h'2.087i'\v'0.650i'\D'l-0.025i 0.100i' 24811891Speter.sp -1 24911891Speter\h'2.062i'\v'0.750i'\D'l-0.025i -0.100i' 25011891Speter.sp -1 25111891Speter\h'1.688i'\v'1.250i'\D'l0.750i 0.000i' 25211891Speter.sp -1 25311891Speter\h'2.438i'\v'1.250i'\D'l0.000i -0.500i' 25411891Speter.sp -1 25511891Speter\h'2.438i'\v'0.750i'\D'l-0.750i 0.000i' 25611891Speter.sp -1 25711891Speter\h'1.688i'\v'0.750i'\D'l0.000i 0.500i' 25811891Speter.sp -1 25911891Speter.lf 244 26011891Speter\h'2.062i-(\w'2.1'u/2u)'\v'1.000i-(0v/2u)+0v+0.22m'2.1 26111891Speter.sp -1 26211891Speter\h'2.062i'\v'1.250i'\D'l0.000i 0.500i' 26311891Speter.sp -1 26411891Speter\h'2.087i'\v'1.650i'\D'l-0.025i 0.100i' 26511891Speter.sp -1 26611891Speter\h'2.062i'\v'1.750i'\D'l-0.025i -0.100i' 26711891Speter.sp -1 26811891Speter.lf 246 26911891Speter\h'2.062i-(\w'1.3'u/2u)'\v'2.000i-(1v/2u)+0v+0.22m'1.3 27011891Speter.sp -1 27111891Speter\h'2.062i'\v'2.250i'\D'l-0.375i -0.500i' 27211891Speter.sp -1 27311891Speter\h'1.688i'\v'1.750i'\D'l0.750i 0.000i' 27411891Speter.sp -1 27511891Speter\h'2.438i'\v'1.750i'\D'l-0.375i 0.500i' 27611891Speter.sp -1 27711891Speter\h'1.875i'\v'2.000i'\D'~-0.500i 0.000i 0.000i -0.500i' 27811891Speter.sp -1 27911891Speter\h'1.350i'\v'1.600i'\D'l0.025i -0.100i' 28011891Speter.sp -1 28111891Speter\h'1.375i'\v'1.500i'\D'l0.025i 0.100i' 28211891Speter.sp -1 28311891Speter.lf 249 28411891Speter\h'1.375i-(\w'1.3.1.1'u/2u)'\v'1.250i-(1v/2u)+1v+0.22m'1.3.1.1 28511891Speter.sp -1 28611891Speter\h'1.375i'\v'1.000i'\D'l-0.375i 0.500i' 28711891Speter.sp -1 28811891Speter\h'1.000i'\v'1.500i'\D'l0.750i 0.000i' 28911891Speter.sp -1 29011891Speter\h'1.750i'\v'1.500i'\D'l-0.375i -0.500i' 29111891Speter.sp -1 29211891Speter\h'2.062i'\v'2.250i'\D'l0.000i 0.500i' 29311891Speter.sp -1 29411891Speter\h'2.087i'\v'2.650i'\D'l-0.025i 0.100i' 29511891Speter.sp -1 29611891Speter\h'2.062i'\v'2.750i'\D'l-0.025i -0.100i' 29711891Speter.sp -1 29811891Speter.lf 252 29911891Speter\h'2.062i-(\w'1.2'u/2u)'\v'3.000i-(1v/2u)+0v+0.22m'1.2 30011891Speter.sp -1 30111891Speter\h'2.062i'\v'3.250i'\D'l-0.375i -0.500i' 30211891Speter.sp -1 30311891Speter\h'1.688i'\v'2.750i'\D'l0.750i 0.000i' 30411891Speter.sp -1 30511891Speter\h'2.438i'\v'2.750i'\D'l-0.375i 0.500i' 30611891Speter.sp -1 30711891Speter\h'1.875i'\v'3.000i'\D'~-0.500i 0.000i -0.500i 0.000i -0.500i 0.000i 0.000i -0.500i' 30811891Speter.sp -1 30911891Speter\h'0.350i'\v'2.600i'\D'l0.025i -0.100i' 31011891Speter.sp -1 31111891Speter\h'0.375i'\v'2.500i'\D'l0.025i 0.100i' 31211891Speter.sp -1 31311891Speter.lf 255 31411891Speter\h'0.375i-(\w'1.2.1.1'u/2u)'\v'2.250i-(1v/2u)+1v+0.22m'1.2.1.1 31511891Speter.sp -1 31611891Speter\h'0.375i'\v'2.000i'\D'l-0.375i 0.500i' 31711891Speter.sp -1 31811891Speter\h'0.000i'\v'2.500i'\D'l0.750i 0.000i' 31911891Speter.sp -1 32011891Speter\h'0.750i'\v'2.500i'\D'l-0.375i -0.500i' 32111891Speter.sp -1 32211891Speter\h'0.375i'\v'2.000i'\D'l0.000i -0.500i' 32311891Speter.sp -1 32411891Speter\h'0.350i'\v'1.600i'\D'l0.025i -0.100i' 32511891Speter.sp -1 32611891Speter\h'0.375i'\v'1.500i'\D'l0.025i 0.100i' 32711891Speter.sp -1 32811891Speter.lf 257 32911891Speter\h'0.375i-(\w'1.2.1.3'u/2u)'\v'1.250i-(1v/2u)+1v+0.22m'1.2.1.3 33011891Speter.sp -1 33111891Speter\h'0.375i'\v'1.000i'\D'l-0.375i 0.500i' 33211891Speter.sp -1 33311891Speter\h'0.000i'\v'1.500i'\D'l0.750i 0.000i' 33411891Speter.sp -1 33511891Speter\h'0.750i'\v'1.500i'\D'l-0.375i -0.500i' 33611891Speter.sp -1 33711891Speter\h'2.250i'\v'3.000i'\D'~0.500i 0.000i 0.000i -0.500i' 33811891Speter.sp -1 33911891Speter\h'2.725i'\v'2.600i'\D'l0.025i -0.100i' 34011891Speter.sp -1 34111891Speter\h'2.750i'\v'2.500i'\D'l0.025i 0.100i' 34211891Speter.sp -1 34311891Speter.lf 261 34411891Speter\h'2.750i-(\w'1.2.2.1'u/2u)'\v'2.250i-(1v/2u)+1v+0.22m'1.2.2.1 34511891Speter.sp -1 34611891Speter\h'2.750i'\v'2.000i'\D'l-0.375i 0.500i' 34711891Speter.sp -1 34811891Speter\h'2.375i'\v'2.500i'\D'l0.750i 0.000i' 34911891Speter.sp -1 35011891Speter\h'3.125i'\v'2.500i'\D'l-0.375i -0.500i' 35111891Speter.sp -1 35211891Speter\h'2.938i'\v'2.250i'\D'~0.500i 0.000i 0.000i -0.500i 0.000i -0.500i' 35311891Speter.sp -1 35411891Speter\h'3.413i'\v'1.350i'\D'l0.025i -0.100i' 35511891Speter.sp -1 35611891Speter\h'3.438i'\v'1.250i'\D'l0.025i 0.100i' 35711891Speter.sp -1 35811891Speter.lf 264 35911891Speter\h'3.438i-(\w'\s-21.2.2.1.1.1\s0'u/2u)'\v'1.000i-(1v/2u)+1v+0.22m'\s-21.2.2.1.1.1\s0 36011891Speter.sp -1 36111891Speter\h'3.438i'\v'0.750i'\D'l-0.375i 0.500i' 36211891Speter.sp -1 36311891Speter\h'3.062i'\v'1.250i'\D'l0.750i 0.000i' 36411891Speter.sp -1 36511891Speter\h'3.812i'\v'1.250i'\D'l-0.375i -0.500i' 36611891Speter.sp -1 36711891Speter\h'2.750i'\v'2.000i'\D'l0.000i -0.500i' 36811891Speter.sp -1 36911891Speter\h'2.725i'\v'1.600i'\D'l0.025i -0.100i' 37011891Speter.sp -1 37111891Speter\h'2.750i'\v'1.500i'\D'l0.025i 0.100i' 37211891Speter.sp -1 37311891Speter.lf 267 37411891Speter\h'2.750i-(\w'1.2.2.2'u/2u)'\v'1.250i-(1v/2u)+1v+0.22m'1.2.2.2 37511891Speter.sp -1 37611891Speter\h'2.750i'\v'1.000i'\D'l-0.375i 0.500i' 37711891Speter.sp -1 37811891Speter\h'2.375i'\v'1.500i'\D'l0.750i 0.000i' 37911891Speter.sp -1 38011891Speter\h'3.125i'\v'1.500i'\D'l-0.375i -0.500i' 38111891Speter.sp -1 38211891Speter\h'2.062i'\v'3.250i'\D'l0.000i 0.500i' 38311891Speter.sp -1 38411891Speter\h'2.087i'\v'3.650i'\D'l-0.025i 0.100i' 38511891Speter.sp -1 38611891Speter\h'2.062i'\v'3.750i'\D'l-0.025i -0.100i' 38711891Speter.sp -1 38811891Speter.lf 270 38911891Speter\h'2.062i-(\w'1.1'u/2u)'\v'4.000i-(1v/2u)+0v+0.22m'1.1 39011891Speter.sp -1 39111891Speter\h'2.062i'\v'4.250i'\D'l-0.375i -0.500i' 39211891Speter.sp -1 39311891Speter\h'1.688i'\v'3.750i'\D'l0.750i 0.000i' 39411891Speter.sp -1 39511891Speter\h'2.438i'\v'3.750i'\D'l-0.375i 0.500i' 39611891Speter.sp -1 39711891Speter.sp 4.250i+1 39811891Speter.if \n(00 .fi 39911891Speter.br 40011891Speter.nr 0x 0 40111891Speter.lf 271 40211891Speter.PE 40311891Speter.lf 272 40411891Speter.\} 4059Sjkh.SH IDENTIFICATION 4069Sjkh.de VL 4079Sjkh\\$2 4089Sjkh.. 4099SjkhAuthor: Walter F. Tichy, 4109SjkhPurdue University, West Lafayette, IN, 47907. 4119Sjkh.br 41211891SpeterManual Page Revision: \*(Rv; Release Date: \*(Dt. 4139Sjkh.br 41411891SpeterCopyright \(co 1982, 1988, 1989 Walter F. Tichy. 4159Sjkh.br 41611891SpeterCopyright \(co 1990, 1991, 1992, 1993, 1994, 1995 Paul Eggert. 4179Sjkh.SH SEE ALSO 41811891Speterrcsintro(1), ci(1), co(1), ident(1), rcs(1), rcsclean(1), rcsdiff(1), 41911891Speterrcsmerge(1), rlog(1) 4209Sjkh.br 4219SjkhWalter F. Tichy, 4229Sjkh\*r\*-A System for Version Control, 4239Sjkh.I "Software\*-Practice & Experience" 4249Sjkh.BR 15 , 4259Sjkh7 (July 1985), 637-654. 426