Department of Computer Sciences Purdue University West Lafayette, Indiana 47907which 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.
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:
ident -- extract identification markers
rcs -- change RCS file attributes
rcsclean -- remove unchanged working files (optional)
rcsdiff -- compare revisions
rcsfreeze -- record a configuration (optional)
rcsmerge -- merge revisions
rlog -- read log messages and other information in
RCS files
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.
10/15/94 -Created by Christopher Lee