RCS has been widely ported and reimplemented.
The free version of RCS is often called GNU RCS to
distinguish it from the non-free
implementations.
CVS and RCS
CVS and RCS both store version histories in a
file format known as RCS files. This format is
documented in the rcsfile(5) manpage in the RCS
distribution and the file doc/RCSFILES in a current
CVS distribution. A large number of tools have the
ability to at least import this format.
CVS 1.9 and earlier were also implemented by
calling RCS programs, but this is no longer true as
of CVS 1.10.
Of course, implementation details aside, CVS and
RCS share a common heritage. The fact that the
output format from the "cvs log" command is
identical to the output format from the RCS "rlog"
command is not a coincidence.
Binary Files and RCS
RCS can handle binary files, but it can be a bit
tricky to set up. If building from sources, follow
the instructions in the RCS source distribution
very carefully. Some RCS executable distributions
will handle binary files correctly.
Once
you have it set up, consult the RCS documentation
(quick summary: make sure to specify -kb).
How Do I Tell What Version of RCS I
Have?
Run the "co -V" command. Recent versions of GNU
RCS will print a version number, for example "RCS
version 5.6.6 (beta)". If you get "co error:
unknown option: -V", you probably have a version of
GNU RCS older than about 5.6 or so (I wasn't able
to verify the exact cutoff). If you get some other
message, you may have a package other than GNU RCS
(GNU RCS is not the only program with a "co"
command).
RCS Standards
There are no formal standards specifying the RCS
command line or file format but there are written
specifications.
The RCS file format is described in the
rcsfile(5) manpage from the RCS distribution and
the doc/RCSFILES file in the CVS source
distribution.
The RCS command line is described in the
manpages from the RCS distribution.
RCS and the Year 2000
The year in an RCS file is two digits if the
year is before 2000 or four digits thereafter. We
believe RCS has implemented this behavior starting
with approximately RCS version 5.1.
|