User Tools

Site Tools


rcs

This is an old revision of the document!


RCS — A System for Version Control

Intro and Background:

RCS was first released in 1982 by Walter Tichy at Purdue University making it one of the earliest version control systems (VCS) used for software development. Unlike modern VCS which are designed for distributed, concurrent development, RCS uses a centralized code repository where files are singularly checked in/out. Although largely supplanted RCS is still useful for small personal projects and is still natively included in the NetBSD operating system which SDF largely runs on. RCS is still actively maintained as a GNU Project at https://www.gnu.org/software/rcs/ .

Why use RCS today?

Although largely supplanted by distributed systems like Git and Mercurial, RCS is still surprisingly useful for small personal projects as well as local scripts and configuration files. In many ways RCS is easier to use with only a handful of commands to memorize, each with a short list of options that lend themselves to aliasing or script incorporation.

Basic RCS usage:

There are several commands that come with RCS but the following are likely most useful:

  • ci(1) - RCS file check-in
  • co(1) - RCS file check-out
  • rlog(1) - RCS change log
  • rcsdiff(1) - RCS diff(1) generator

The rcs(1) command is also useful, sort of a multi-tool that duplicates some of the functionality of the above commands as well as extending them, i.e. deleting a range of revisions, editing informational text in the log, changing default locking modes, etc.

An illustrated example is probably the best way to convey RCS utility:

## insert session log here ##

Documentation:

Aside from the man(1) and info(1) pages, Tichy's original 1985 paper1) still provides an good introduction to using RCS. For more in-depth coverage the following may prove helpful:

Misc:

How about a graphical RCS browser2) for Windows and Linux?

rcs.1741111516.txt.gz · Last modified: 2025/03/04 18:05 by zilog