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 was first developed by Walter F. Tichy at Purdue University in the early 1980s -- paper: RCS: A System for Version Control (1991) (troff, PostScript, PDF). See also the Purdue RCS Homepage.
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.
Download / News
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.
- bug fixes
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:
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.)
- portability fixes
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:
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.
- maintenance tools updated
- automake (GNU automake) 1.14.1
- gnulib-tool (GNU gnulib 2014-09-16 19:26:48) 0.1.222-aa0c2
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:
- bug-rcs is for reporting bugs.
- help-rcs is for feature requests and user support.
Announcements about RCS and most other GNU software are made on info-gnu (archive).
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).
- For development sources, issue trackers, and other information, please see the RCS project page at savannah.gnu.org.
- RCS is currently being maintained by Thien-Thi Nguyen (tip jar). Please use the mailing lists for contact.
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.