NAME
rcsfile
—
format of an RCS file
DESCRIPTION
An RCS file is a text file. It consists of four sections, each separated by two empty lines. RCS files should not be edited by hand; the rcs(1) programs should be used instead.
Administrative data
The RCS file begins with admin data. Each entry in this section consists of either one or multiple values. Entries that take one value are specified on one line: The keyword and its corresponding value are separated by a tab character. Entries that take multiple values begin with a keyword on one line; the values are specified on subsequent lines, one per line and prefixed with a tab character. If the list is empty, the semicolon immediately follows the keyword. Entries are terminated with a semicolon. The entries are:
head
rev- Highest revision number.
branch
rev- Revision number that specifies the default branch (optional).
access
- List of users that are allowed to check in new revisions with ci(1). This keyword is not followed by a tab; instead, the list of users is specified with one username per line. The list is terminated by a single semicolon.
symbols
- List of symbolic names used as aliases for specific revisions. Each entry consists of a symbolic name followed by a colon and the revision.
locks
- List of locked revisions. Each entry consists of a username followed by a colon and the locked revision.
strict
- Indicates that locks are strict; if missing, locks are not strict. This entry takes no value and immediately follows the list of locks without a newline.
comment
@leader@- Contains the comment leader surrounded by at signs.
expand
@mode@- Indicates the keyword substitution mode. See rcs(1) for the possible keyword substitution modes. If this entry is not given in the admin section, kv must be assumed.
List of deltas
The RCS file continues with a list of deltas. Deltas are separated by empty lines. The list begins with the head and ends with the initial revision. Each entry begins with the revision number, followed by a newline. After that, the structure follows the admin section.
date
YYYY.mm.dd.HH.MM.SS- Indicates the date and UTC time the revision was checked in. The date consists of the year, the month, the day of month, the hour, the minute and the second, each separated by dots. The year is specified in either two or four digits. The other values are specified in two digits each.
- Author's username. This entry immediately follows the
date
without a newline. state
value- Contains the state of this delta, which is an arbitrary string. This entry
immediately follows the
author
without a newline. branches
- List of revision numbers that are branches stemming from this delta.
next
rev- Next revision. Chronologically, this is the previous revision. For the initial check-in, rev is empty, but the tab character that acts as separator is nonetheless present.
Description
The RCS file continues with the description. It consists of the
string desc
followed by a newline and then an at
sign. The description is an arbitrary string that can span multiple lines. A
single at sign on a line terminates the description. At signs anywhere in
the description itself are escaped by prefixing them with another at
sign.
List of deltatexts
Finally, the RCS file contains the deltatexts. The list of
deltatexts is ordered the same as the list of deltas. Deltatexts are
separated by two lines. Each entry begins with the revision number, followed
by a newline. The text “log
” follows
on its own line. The log message follows on another new line; it consists of
an at sign, the log message itself (which may span multiple lines), and
finally an at sign on its own line. Then the text
“text
” follows on its own line. The
format is the same as for the description and log message. As with the
description, at signs anywhere in the log message or in the deltatext itself
are escaped by prefixing them with another at sign. The deltatext of the
head consists of the full file contents. All subsequent deltatexts contain
the differences to the previous deltatext in the format of
diff(1)
-n
.
SEE ALSO
ci(1), co(1), cvs(1), ident(1), rcs(1), rcsclean(1), rcsdiff(1), rcsmerge(1)