Next Previous Contents

## 1. Overview of RCS.

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.

For an overview of RCS, see the `rcsintro(1)` manual page.

Next Previous Contents