RCS, the revision control system, is a suite of programs that tracks
changes in text files and controls shared access to files in work
group situations. It is generally used to maintain source code
modules. It lends itself to tracking revisions of document files as
well.

RCS was written by Walter F. Tichy and Paul Eggert. The latest
version which has been ported to Linux is RCS Version 5.7. There is
also a semi-official, threaded version available. Much of the
information in this HOWTO is taken from the RCS man pages.

RCS includes the rcs(1) program, which controls RCS archive
file attributes, ci(1) and co(1), which check files
in and out of RCS archives, ident(1), which searches RCS
archives by keyword identifiers, rcsclean(1), a program to
clean up files that are not being worked on or haven't changed,
rcsdiff(1), which runs diff(1) to compare the
revisions, rcsmerge(1), which merges two RCS branches into a
single working file, and rlog(1), which prints RCS log
messages.

Files archived by RCS may be text of any format, or binary if the
diff program used to generate change files handles 8-bit
data. Files may optionally include identification strings to aid in
tracking by ident(1). RCS uses the utilities
diff(1) and diff3(3) to generate the change files
between revisions. A RCS archive consists of the initial revision of
a file, which is version 1.1, and a series of change files, one for
each revision. Each time a file is checked out of an archive with
co(1), edited, and checked back into the archive with
ci(1), the version number is increased, for example, to 1.2,
1.3, 1.4, and so on for successive revisions.

The archives themselves commonly reside in a ./RCS
subdirectory, although RCS has other options for archive storage.