rcs

Revision Control System

RCS is a set of tools ( ci, co, rcs, rlog ) that make up the revision control system. I am providign a list of common flags. For more complete information look at the man pages on any of the tools.

Make a directory in the current path named "RCS" , and all of the log files will be kept there, otherwise you will have all of the files in the current directory ( which is messy ).

Basic commands

ci

checks in and removes existing copy

ci -u

checks in and releases lock (file becomes read-only)

ci -l

checks in and retains lock (file is rw)

co

checks out with no lock (read-only)

co -u

checks out with no lock (read-only)

co -l

checks out and obtains exclusive lock

rlog

look at log

rcsdiff

compare revisions and create patches. Example:

rcsdiff -r1.4 -u foo.c

rcs -u

break locks

rlog

read any log entries on the file

Logs and headers in files

  • Put strings into files and RCS will expand them:
    • $Header$ $Id$ $Date$ $Log$
  • For example, $Header$ gets expanded to something like this:
    • $Header: RCS/foo.cpp,v 1.2 1999/04/26 23:18:53 jclark $

Reverting to old versions without dealing with branch messiness

  • Reverting to an old version by checking out the old version and then checking it back in would normally force you to deal with branches which can get messy.
  • An easier way is to do something like:
    • ci -l foo.cpp # save old version before clobbering # plus get a lock on the file co -r1.5 foo.cpp # revert to version 1.5 ci -u foo.cpp # check in the reverted file and unlock