<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sarg.dev/index.php?action=history&amp;feed=atom&amp;title=Revision_Control_System</id>
	<title>Revision Control System - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sarg.dev/index.php?action=history&amp;feed=atom&amp;title=Revision_Control_System"/>
	<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php?title=Revision_Control_System&amp;action=history"/>
	<updated>2026-04-20T05:17:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.sarg.dev/index.php?title=Revision_Control_System&amp;diff=45195&amp;oldid=prev</id>
		<title>imported&gt;InternetArchiveBot: Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5</title>
		<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php?title=Revision_Control_System&amp;diff=45195&amp;oldid=prev"/>
		<updated>2025-11-02T01:42:21Z</updated>

		<summary type="html">&lt;p&gt;Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{short description|Version-control system}}&lt;br /&gt;
{{Lead too short|date=September 2020}}&lt;br /&gt;
{{Infobox software&lt;br /&gt;
| name = Revision Control System&lt;br /&gt;
| logo = &lt;br /&gt;
| screenshot = &lt;br /&gt;
| caption = &lt;br /&gt;
| author = [[Walter F. Tichy]]&lt;br /&gt;
| developer = [[GNU Project]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[The OpenBSD project]] (OpenRCS)&lt;br /&gt;
| released = {{Start date and age|1982}}&lt;br /&gt;
| latest release version = {{wikidata|property|reference|P348}}&lt;br /&gt;
| latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}}&lt;br /&gt;
| programming language = [[C (programming language)|C]]&lt;br /&gt;
| operating system = [[Unix-like]], [[V (operating system)|V]]&amp;lt;ref&amp;gt;[http://bitsavers.org/pdf/stanford/v-system/V_6.0refMan_Jun86.pdf V-System 6.0 Reference Manual]&amp;lt;/ref&amp;gt;&lt;br /&gt;
| platform = &lt;br /&gt;
| genre = [[Version control]]&lt;br /&gt;
| license = [[GNU General Public License|GPL-3.0-or-later]]{{efn|GPL-3.0-or-later since 2010-06-24.}}&amp;lt;ref&amp;gt;{{cite web|url=https://git.savannah.gnu.org/cgit/rcs.git/commit/COPYING?id=f3cc1b9908300e07b97972785a7b1c946e75ca3c|title=Update license to GPLv3+.|date=2010-06-24}}&amp;lt;/ref&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[2-clause BSD license]] (OpenRCS)&lt;br /&gt;
| website = {{URL|https://www.gnu.org/software/rcs/}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Revision Control System&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;RCS&amp;#039;&amp;#039;&amp;#039;) is an early implementation of a [[version control system]] (VCS). It is a set of [[Unix|UNIX]] commands that allow multiple users to develop and maintain program code or documents.  With RCS, users can make their own revisions of a document, commit changes, and merge them. RCS was originally developed for programs but is also useful for text documents or configuration files that are frequently revised.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
=== Development ===&lt;br /&gt;
RCS was first released in 1982&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;{{cite journal&lt;br /&gt;
| last = Tichy | first = Walter&lt;br /&gt;
| title = Design, implementation, and evaluation of a Revision Control System&lt;br /&gt;
| journal = ICSE &amp;#039;82 Proceedings of the 6th International Conference on Software Engineering&lt;br /&gt;
| year = 1982 | pages = 58–67&lt;br /&gt;
| url = http://dl.acm.org/citation.cfm?id=807748&lt;br /&gt;
| access-date = 12 June 2012&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
by [[Walter F. Tichy]] at [[Purdue University]]. It was an alternative tool to the then-popular [[Source Code Control System]] (SCCS) which was nearly the first version control software tool (developed in 1972 by early Unix developers).&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;{{Cite web|url=http://www.catb.org/~esr/writings/version-control/version-control.html|title=Understanding Version-Control Systems (DRAFT)|first=Eric|last=Raymond|website=www.catb.org|access-date=2017-02-13}}&amp;lt;/ref&amp;gt; RCS is currently maintained by the [[GNU Project]].&amp;lt;ref&amp;gt;{{cite web |title = RCS|website = GNU Project|publisher = Free Software Foundation|access-date = 27 June 2015|url = https://www.gnu.org/software/rcs/|date = 22 January 2015}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An innovation in RCS is the adoption of &amp;#039;&amp;#039;reverse deltas&amp;#039;&amp;#039;. Instead of storing every revision in a file like SCCS does with [[interleaved deltas]], RCS stores a set of edit instructions to go back to an earlier version of the file. Tichy claims that it is faster for most cases because the recent revisions are used more often.&amp;lt;ref name=&amp;quot;:1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Legal and licensing===&lt;br /&gt;
Initially (through version 3, which was distributed in 4.3BSD), its license prohibited redistribution without written permission from Walter Tichy:&amp;lt;ref&amp;gt;{{cite web |url=http://www.retro11.de/ouxr/43bsd/usr/src/new/rcs/src/rcsdiff.c.html |title=4.3BSD - /usr/src/new/rcs/src/rcsdiff.c |publisher=Walter&amp;#039;s Retro Computing Corner Documentation |access-date = 15 November 2014 |date=19 May 1986}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{quote|Copyright (C) 1982 by Walter F. Tichy [...] All rights reserved. No part of this software may be sold or distributed in any form or by any means without the prior written permission of the author.}}&lt;br /&gt;
&lt;br /&gt;
A [[README|READ_ME]] file accompanied some versions of RCS which further restricted distribution, e.g., in [[Berkeley Software Distribution#4.3BSD|4.3BSD-Reno]].&amp;lt;ref&amp;gt;{{Cite FTP |url=ftp://ftp.mrynet.com/operatingsystems/CSRG/cd2/4.3reno/usr/src/contrib/rcs/src/READ_ME |server=FTP server |url-status=dead |title=CSRG/cd2/4.3reno/usr/src/contrib/rcs/src/READ_ME |date=27 February 1989 }}&amp;lt;/ref&amp;gt;&amp;lt;!-- Better source needed --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ca. 1989, the RCS license was altered to something similar to the contemporary [[BSD licenses#Previous license|BSD licenses]], as seen by comments in the source code.&amp;lt;ref&amp;gt;{{Cite FTP |url=ftp://ftp.mrynet.com/operatingsystems/CSRG/cd2/4.3reno/usr/src/contrib/rcs/src/rcs.c |server=FTP server |url-status=dead |title=CSRG/cd2/4.3reno/usr/src/contrib/rcs/src/rcs.c |date=15 August 1989}}&amp;lt;/ref&amp;gt;&amp;lt;!-- Better source needed --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{quote|Redistribution and use in source and binary forms are permitted provided that the above copyright notice and this paragraph are duplicated in all such forms and that any documentation, advertising materials, and other materials related to such distribution and use acknowledge that the software was developed by Walter Tichy.}}&lt;br /&gt;
&lt;br /&gt;
RCS 4.3, released 26 July 1990, was distributed &amp;quot;under license by the [[Free Software Foundation]]&amp;quot;, under the terms of the [[GNU General Public License|GPL]].&amp;lt;ref&amp;gt;RCS 4.3 README file.&amp;lt;/ref&amp;gt;{{full citation needed|date=January 2022}}&lt;br /&gt;
&lt;br /&gt;
OpenBSD provides a different implementation called &amp;#039;&amp;#039;OpenRCS&amp;#039;&amp;#039;, which is BSD-licensed.&amp;lt;ref&amp;gt;{{Cite web |title=rcs(1) - OpenBSD manual pages |url=https://man.openbsd.org/rcs.1#HISTORY |access-date=2024-09-05 |website=man.openbsd.org}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Behavior ==&lt;br /&gt;
=== Mode of operation ===&lt;br /&gt;
RCS works well with standalone files and supports multi-file projects but, by modern standards, that support is limited: RCS can assemble the versions of multiple files into a single release (via &amp;quot;symbolic names&amp;quot;)&amp;lt;ref&amp;gt;F. Tichy, Walter: &amp;quot;RCS: A System for Version Control&amp;quot;, page 15. Department of Computer Science Technical Reports, Purdue University. Paper 394. https://docs.lib.purdue.edu/cstech/394&amp;lt;/ref&amp;gt; but it lacks support for [[Atomic commit#Revision control|atomic commit]] across those files. Although it provides branching, the version syntax is cumbersome.{{Citation needed|reason=what&amp;#039;s cumbersome about it?!|date=February 2025}}&amp;lt;!-- need some proper lead-in to point out that tools which use RCS files such as CVS use the same branching, but make it simpler to use --&amp;gt; Instead of using branches, many teams just use the built-in locking mechanism and work on a single &amp;#039;&amp;#039;head&amp;#039;&amp;#039; branch.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
RCS revolves around the usage of &amp;quot;revision groups&amp;quot; or sets of files that have been checked-in via the &amp;lt;code&amp;gt;co&amp;lt;/code&amp;gt; (checkout) and &amp;lt;code&amp;gt;ci&amp;lt;/code&amp;gt; (check-in) commands. By default, a checked-in file is removed and replaced with a &amp;quot;,v&amp;quot; file (so foo.rb when checked in becomes foo.rb,v) which can then be checked out by anyone with access to the revision group.  RCS files (again, files with the extension &amp;quot;,v&amp;quot;) reflect the main file with additional metadata on its first lines.  Once checked in, RCS stores revisions in a tree structure that can be followed so that a user can revert a file to a previous form if necessary.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Advantages ===&lt;br /&gt;
* Simple structure and easy to work with &amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;{{Cite web|url=https://mauriziostorani.wordpress.com/2008/12/10/revision-control-concepts-revision-control-system-rcs-concurrent-versions-system-cvs-and-subversion/|title=Revision control concepts – Revision Control System (RCS), Concurrent Versions System (CVS) and Subversion|date=2008-12-10|website=IT PASSION - &amp;quot;IT professional Blog&amp;quot;|access-date=2017-02-20}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Revision saving is not dependent on a central repository &amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Disadvantages ===&lt;br /&gt;
* There is little security, in the sense that the version history can be edited by the users.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
* Only one user can work on a file at a time.&amp;lt;ref&amp;gt;{{Cite web|url=https://www.ibr.cs.tu-bs.de/kb/revision-control.html|title=Revision Control Systems (RCS, CVS, Subversion, Git)|first=Frank|last=Steinberg|publisher=[[Technical University of Braunschweig]]|language=en|access-date=2017-02-20}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{Notelist}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Concurrent Versions System]] (&amp;#039;&amp;#039;CVS&amp;#039;&amp;#039;)&lt;br /&gt;
* [[Apache Subversion]] (&amp;#039;&amp;#039;SVN&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Reflist|35em}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
{{Refbegin}}&lt;br /&gt;
* Walter F. Tichy: &amp;#039;&amp;#039;[http://www.uvm.edu/~ashawley/rcs/tichy1985rcs/html/ RCS--A System for Version Control]&amp;#039;&amp;#039;. In: &amp;#039;&amp;#039;Software: Practice and Experience&amp;#039;&amp;#039;. July 1985. Volume 15. Number 7. Pages 637–654. [http://citeseer.ist.psu.edu/tichy91rc.html References to the paper at CiteSeer] [https://www.cs.purdue.edu/homes/trinkle/RCS/rcs.ps alternate link to paper]&lt;br /&gt;
{{Refend}}&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
* Don Bolinger, Tan Bronson, &amp;#039;&amp;#039;Applying RCS and SCCS - From Source Control to Project Control&amp;#039;&amp;#039;. O&amp;#039;Reilly, 1995.&lt;br /&gt;
* Walter F. Tichy, &amp;#039;&amp;#039;[https://users.ninthfloor.org/~ashawley/rcs/tichy1985rcs/rcs.html RCS—A System for Version Control] {{Webarchive|url=https://web.archive.org/web/20180218160038/https://users.ninthfloor.org/~ashawley/rcs/tichy1985rcs/rcs.html |date=18 February 2018 }},&amp;#039;&amp;#039; 1985&lt;br /&gt;
* Paul Heinlein, [https://www.madboa.com/geek/rcs/ RCS HOWTO], 2004&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
{{Portal|Free and open-source software}}&lt;br /&gt;
* {{Official website}}&lt;br /&gt;
* [http://www.cs.purdue.edu/homes/trinkle/RCS/ Original RCS at Purdue]&lt;br /&gt;
* {{man|1|rcs|OpenBSD|RCS file management program}}&lt;br /&gt;
&lt;br /&gt;
{{Version control software}}&lt;br /&gt;
&lt;br /&gt;
{{Authority control}}&lt;br /&gt;
{{Use dmy dates|date=February 2020}}&lt;br /&gt;
&lt;br /&gt;
[[Category:1985 software]]&lt;br /&gt;
[[Category:Free version control software]]&lt;br /&gt;
[[Category:GNU Project software]]&lt;br /&gt;
[[Category:Software using the GNU General Public License]]&lt;br /&gt;
[[Category:Types of tools used in software development]]&lt;/div&gt;</summary>
		<author><name>imported&gt;InternetArchiveBot</name></author>
	</entry>
</feed>