RCS -- The Revision Control System


Table of contents


Overview

This is adapted from A System for Version Control by Walter F. Tichy,
Department of Computer Sciences
Purdue University
West Lafayette, Indiana 47907
which comes with the RCS distribution.

An important problem in program development and maintenance is version control, i.e., the task of keeping a software system consisting of many versions and configurations well organized. The Revision Control System (RCS) is a software tool that assists with that task. RCS manages revisions of text documents, in particular source programs, documentation, and test data. It automates the storing, retrieval, logging and identification of revisions, and it provides selection mechanisms for composing configurations. For conserving space, RCS stores deltas, i.e., differences between successive revisions. Usage statistics show that RCS's delta storage method is space and time efficient.

Version control is the task of keeping software systems consisting of many versions and configurations well organized. The Revision Control System (RCS) is a set of UNIX commands that assist with that task.

RCS' primary function is to manage revision groups. A revision group is a set of text documents, called revisions, that evolved from each other. A new revision is created by manually editing an existing one. RCS organizes the revisions into an ancestral tree. The initial revision is the root of the tree, and the tree edges indicate from which revision a given one evolved. Besides managing individual revision groups, RCS provides flexible selection functions for composing configurations. RCS may be combined with MAKE, resulting in a powerful package for version control.

RCS also offers facilities for merging updates with customer modifications, for distributed software development, and for automatic identification. Identification is the `stamping' of revisions and configurations with unique markers. These markers are akin to serial numbers, telling software maintainers unambiguously which configuration is before them.


Examples

Overview

These examples are adapted from A System for Version Control

Invoking the check-in command:

ci  f.c

To get back the working file f.c in the previous example, execute the check-out command:

co  f.c

To reduce the clutter in a working directory, all RCS files can be moved to a subdirectory with the name RCS. RCS commands look first into that directory for RCS files. All the commands presented above work with the RCS subdirectory without change.

Besides the operations ci and co, RCS provides the following commands:


Cool Stuff

RCS, like SCCS, stores the differences between files using the diff, making the resultings history of files compact. RCS can potentially work with binary files, and can help keep a history of modifcations to code within the code itself or within history files.

For large projects involving multiple files, CVS is a front-end for RCS that allows for multiple-file projects with multiple people working on any given file.

References

See Also

CVS, SCCS.

VASC Contact

RCS is a gnu program, so Jay Gowdy is probably the guy to go to.

History

10/15/94 -Created by Christopher Lee


Christopher Lee | chrislee@ri.cmu.edu
Last modified: Wed Nov 4 10:31:14 1998
This page has been accessed [count] times.