The Revision Control System (RCS) manages multiple revisions of files. RCS automates the storing, retrieval, logging, identification, and merging of revisions. RCS is useful for text that is revised frequently, including source code, programs, documentation, graphics, papers, and form letters.
RCS design is an improvement from its predecessor Source Code Control System (SCCS) (see GNU CSSC). The improvements include an easier user interface and improved storage of versions for faster retrieval. RCS improves performance by storing an entire copy of the most recent version and then stores reverse differences (called "deltas"). RCS uses GNU Diffutils to find the differences between versions.
Latest release: 5.9.3 (2014-09-17)
compatibility w/ RCS 2.x file format dropped
This was presaged w/ RCS 5.9.0 (released 2013-05-06), below.
Effectively, the configure script no longer supports option
--enable-compat2’, and RCS programs will fail, reporting a
syntax error, if given a comma-v file in 2.x format.
crash on co/ci without changes on a branch
RCS 5.8 (released 2011-08-30) introduced a bug whereby a ci without changes (i.e., reversion) on a branch would crash, leaving a temporary files and corrupted comma-v file as well. This regression is now fixed. See tests/t804, and also: http://lists.gnu.org/archive/html/bug-rcs/2014-01/msg00000.html
file corruption using stdio under Cygwin, Darwin
RCS 5.8 (released 2011-08-30) introduced a bug when using stdio
(e.g., with env var ‘
RCS_MEM_LIMIT’ set to
"0") under Cygwin
whereby ci with a sufficiently large working file would silently
write a truncated comma-v file. See tests/t805, and also:
(Although the bug was initially discovered under Cygwin, the Hydra project reported the same problem for Darwin.)
don't recurse on ‘
This is for the sake of Cygwin
"make check". See:
avoid C99 VLA elems in func decl, sometimes
This is for the sake of Solaris 10 + GCC 3.4.3. See: http://lists.gnu.org/archive/html/bug-rcs/2014-08/msg00002.html
new diff/diff3 cross-compilation support
The configure script now assigns
"optimistic defaults" to some
diff/diff3-related vars when cross-compiling and invoked with
DIFF’ and ‘
DIFF3’. See README.
Documentation for RCS is available online, as is documentation for most GNU software. You may also find more information about RCS by running info rcs or by looking at /usr/share/doc/rcs/, /usr/local/doc/rcs/, or similar directories on your system.
RCS has the following mailing lists:
Security reports that should not be made immediately public can be sent directly to the maintainer. If there is no response to an urgent issue, you can escalate to the general security mailing list for advice.
Development of RCS, and GNU in general, is a volunteer effort, and you can contribute. For information, please read How to help GNU. If you'd like to get involved, it's a good idea to join the discussion mailing list (see above).
RCS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
The Free Software Foundation is the principal organizational sponsor of the GNU Operating System. Support GNU and the FSF by buying manuals and gear, joining the FSF as an associate member, or making a donation, either directly to the FSF or via Flattr.