Revision Control System: Difference between revisions
imported>GreenC bot Move 2 urls. Wayback Medic 2.5 per WP:URLREQ#citeftp |
imported>Xose.vazquez add OpenRCS |
||
| (One intermediate revision by one other user not shown) | |||
| Line 7: | Line 7: | ||
| caption = | | caption = | ||
| author = [[Walter F. Tichy]] | | author = [[Walter F. Tichy]] | ||
| developer = [[GNU Project]] | | developer = [[GNU Project]] | ||
| released = {{Start date and age|1982}} | | released = {{Start date and age|1982}} | ||
| latest release version = {{wikidata|property|reference|P348}} | | latest release version = {{wikidata|property|reference|P348}} | ||
| Line 16: | Line 15: | ||
| platform = | | platform = | ||
| genre = [[Version control]] | | genre = [[Version control]] | ||
| license = [[GNU General Public License|GPL-3.0-or-later]]{{efn|GPL-3.0-or-later since 2010-06-24.}}<ref>{{cite web|url=https://git.savannah.gnu.org/cgit/rcs.git/commit/COPYING?id=f3cc1b9908300e07b97972785a7b1c946e75ca3c|title=Update license to GPLv3+.|date=2010-06-24}}</ref> | | license = [[GNU General Public License|GPL-3.0-or-later]]{{efn|GPL-3.0-or-later since 2010-06-24.}}<ref>{{cite web|url=https://git.savannah.gnu.org/cgit/rcs.git/commit/COPYING?id=f3cc1b9908300e07b97972785a7b1c946e75ca3c|title=Update license to GPLv3+.|date=2010-06-24}}</ref> | ||
}} | }} | ||
{{Infobox software | |||
| name = OpenRCS | |||
| author = Jean-Francois Brousseau, Joris Vink, Niall O'Higgins, and Xavier Santolaria | |||
| developer = [[OpenBSD]] | |||
| released = {{Start date and age|2006}} | |||
| programming language = [[C (programming language)|C]] | |||
| operating system = [[OpenBSD]] | |||
| genre = [[Version control]] | |||
| license = [[BSD licenses|BSD]] | |||
| repo = {{URL|cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/rcs/}} | |||
| website = {{URL|cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/rcs/}} | |||
}} | |||
'''Revision Control System''' ('''RCS''') 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.<ref name=":1" /> | '''Revision Control System''' ('''RCS''') 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.<ref name=":1" /> | ||
| Line 82: | Line 93: | ||
==Further reading== | ==Further reading== | ||
* Don Bolinger, Tan Bronson, ''Applying RCS and SCCS - From Source Control to Project Control''. O'Reilly, 1995. | * Don Bolinger, Tan Bronson, ''Applying RCS and SCCS - From Source Control to Project Control''. O'Reilly, 1995. | ||
* Walter F. Tichy, ''[https://users.ninthfloor.org/~ashawley/rcs/tichy1985rcs/rcs.html RCS—A System for Version Control],'' 1985 | * Walter F. Tichy, ''[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 }},'' 1985 | ||
* Paul Heinlein, [https://www.madboa.com/geek/rcs/ RCS HOWTO], 2004 | * Paul Heinlein, [https://www.madboa.com/geek/rcs/ RCS HOWTO], 2004 | ||
==External links== | ==External links== | ||
{{Portal|Free and open-source software}} | {{Portal|Free and open-source software}} | ||
* [http://www.cs.purdue.edu/homes/trinkle/RCS/ Original RCS at Purdue] | * [http://www.cs.purdue.edu/homes/trinkle/RCS/ Original RCS at Purdue] | ||
* {{man|1|rcs|OpenBSD|RCS file management program}} | * {{man|1|rcs|OpenBSD|RCS file management program}} | ||
Latest revision as of 12:44, 30 November 2025
Template:Short description Script error: No such module "Unsubst". Script error: No such module "Infobox".Template:Template other Script error: No such module "Check for unknown parameters".Script error: No such module "Check for conflicting parameters".
Script error: No such module "Infobox".Template:Template other Script error: No such module "Check for unknown parameters".Script error: No such module "Check for conflicting parameters".
Revision Control System (RCS) is an early implementation of a version control system (VCS). It is a set of 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.[1]
History
Development
RCS was first released in 1982[1] 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).[2] RCS is currently maintained by the GNU Project.[3]
An innovation in RCS is the adoption of reverse deltas. 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.[1]
Legal and licensing
Initially (through version 3, which was distributed in 4.3BSD), its license prohibited redistribution without written permission from Walter Tichy:[4]
A READ_ME file accompanied some versions of RCS which further restricted distribution, e.g., in 4.3BSD-Reno.[5]
Ca. 1989, the RCS license was altered to something similar to the contemporary BSD licenses, as seen by comments in the source code.[6]
RCS 4.3, released 26 July 1990, was distributed "under license by the Free Software Foundation", under the terms of the GPL.[7]Script error: No such module "Unsubst".
OpenBSD provides a different implementation called OpenRCS, which is BSD-licensed.[8]
Behavior
Mode of operation
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 "symbolic names")[9] but it lacks support for atomic commit across those files. Although it provides branching, the version syntax is cumbersome.Script error: No such module "Unsubst". Instead of using branches, many teams just use the built-in locking mechanism and work on a single head branch.[1]
Usage
RCS revolves around the usage of "revision groups" or sets of files that have been checked-in via the co (checkout) and ci (check-in) commands. By default, a checked-in file is removed and replaced with a ",v" 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 ",v") 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.[1]
Advantages
- Simple structure and easy to work with [10]
- Revision saving is not dependent on a central repository [10]
Disadvantages
- There is little security, in the sense that the version history can be edited by the users.[10]
- Only one user can work on a file at a time.[11]
Notes
See also
- Concurrent Versions System (CVS)
- Apache Subversion (SVN)
References
<templatestyles src="Reflist/styles.css" />
- ↑ a b c d e Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Template:Cite FTP
- ↑ Template:Cite FTP
- ↑ RCS 4.3 README file.
- ↑ Script error: No such module "citation/CS1".
- ↑ F. Tichy, Walter: "RCS: A System for Version Control", page 15. Department of Computer Science Technical Reports, Purdue University. Paper 394. https://docs.lib.purdue.edu/cstech/394
- ↑ a b c Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
Script error: No such module "Check for unknown parameters".
Notes
<templatestyles src="Refbegin/styles.css" />
- Walter F. Tichy: RCS--A System for Version Control. In: Software: Practice and Experience. July 1985. Volume 15. Number 7. Pages 637–654. References to the paper at CiteSeer alternate link to paper
Further reading
- Don Bolinger, Tan Bronson, Applying RCS and SCCS - From Source Control to Project Control. O'Reilly, 1995.
- Walter F. Tichy, RCS—A System for Version Control Template:Webarchive, 1985
- Paul Heinlein, RCS HOWTO, 2004
External links
Script error: No such module "Portal".
- Original RCS at Purdue
- : RCS file management program – OpenBSD General Commands Manual