Revision Control System

From Wikipedia, the free encyclopedia

Template:Short description

Page Module:Message box/ambox.css has no content.

Page Module:Infobox/styles.css has no content.

Revision Control System
[[Programmer|Original authorTemplate:Pluralize from text]]Walter F. Tichy
[[Programmer|DeveloperTemplate:Pluralize from text]]GNU Project
Initial release1982; 44 years ago (1982)
Template:Infobox software/simple
Written inC
Operating systemUnix-like, V[1]
TypeVersion control
LicenseGPL-3.0-or-later[a][2]
WebsiteScript error: No such module "WikidataIB".

Script error: No such module "Check for conflicting parameters". Page Module:Infobox/styles.css has no content.

OpenRCS
[[Programmer|Original authorTemplate:Pluralize from text]]Jean-Francois Brousseau, Joris Vink, Niall O'Higgins, and Xavier Santolaria
[[Programmer|DeveloperTemplate:Pluralize from text]]OpenBSD
Initial release2006; 20 years ago (2006)
Template:Infobox software/simple
Written inC
Operating systemOpenBSD
TypeVersion control
LicenseBSD
Websitecvsweb.openbsd.org/src/usr.bin/rcs/
Repositorycvsweb.openbsd.org/src/usr.bin/rcs/

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.[3]

History

Development

RCS was first released in 1982[3] 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).[4] RCS is currently maintained by the GNU Project.[5]

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.[3]

Initially (through version 3, which was distributed in 4.3BSD), its license prohibited redistribution without written permission from Walter Tichy:[6]

Template:Quote

A READ_ME file accompanied some versions of RCS which further restricted distribution, e.g., in 4.3BSD-Reno.[7]

Ca. 1989, the RCS license was altered to something similar to the contemporary BSD licenses, as seen by comments in the source code.[8]

Template:Quote

RCS 4.3, released 26 July 1990, was distributed "under license by the Free Software Foundation", under the terms of the GPL.[9][full citation needed]

OpenBSD provides a different implementation called OpenRCS, which is BSD-licensed.[10]

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")[11] but it lacks support for atomic commit across those files. Although it provides branching, the version syntax is cumbersome.[citation needed] Instead of using branches, many teams just use the built-in locking mechanism and work on a single head branch.[3]

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.[3]

Advantages

  • Simple structure and easy to work with [12]
  • Revision saving is not dependent on a central repository [12]

Disadvantages

  • There is little security, in the sense that the version history can be edited by the users.[12]
  • Only one user can work on a file at a time.[13]

Notes

Page Template:Reflist/styles.css has no content.

  1. ^ GPL-3.0-or-later since 2010-06-24.

See also

References

Page Template:Reflist/styles.css has no content.

  1. ^ V-System 6.0 Reference Manual
  2. ^ Page Module:Citation/CS1/styles.css has no content."Update license to GPLv3+". 24 June 2010.
  3. ^ a b c d e Page Module:Citation/CS1/styles.css has no content.Tichy, Walter (1982). "Design, implementation, and evaluation of a Revision Control System". ICSE '82 Proceedings of the 6th International Conference on Software Engineering: 58–67. Retrieved 12 June 2012.
  4. ^ Page Module:Citation/CS1/styles.css has no content.Raymond, Eric. "Understanding Version-Control Systems (DRAFT)". www.catb.org. Retrieved 13 February 2017.
  5. ^ Page Module:Citation/CS1/styles.css has no content."RCS". GNU Project. Free Software Foundation. 22 January 2015. Retrieved 27 June 2015.
  6. ^ Page Module:Citation/CS1/styles.css has no content."4.3BSD - /usr/src/new/rcs/src/rcsdiff.c". Walter's Retro Computing Corner Documentation. 19 May 1986. Retrieved 15 November 2014.
  7. ^ Template:Cite FTP
  8. ^ Template:Cite FTP
  9. ^ RCS 4.3 README file.
  10. ^ Page Module:Citation/CS1/styles.css has no content."rcs(1) - OpenBSD manual pages". man.openbsd.org. Retrieved 5 September 2024.
  11. ^ 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
  12. ^ a b c Page Module:Citation/CS1/styles.css has no content."Revision control concepts – Revision Control System (RCS), Concurrent Versions System (CVS) and Subversion". IT PASSION - "IT professional Blog". 10 December 2008. Retrieved 20 February 2017.
  13. ^ Page Module:Citation/CS1/styles.css has no content.Steinberg, Frank. "Revision Control Systems (RCS, CVS, Subversion, Git)". Technical University of Braunschweig. Retrieved 20 February 2017.

Notes

Page Template:Refbegin/styles.css has no content.

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 Script error: No such module "webarchive"., 1985
  • Paul Heinlein, RCS HOWTO, 2004

Lua error in mw.title.lua at line 404: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').

Lua error in package.lua at line 80: module 'Module:Navbox/configuration' not found.

Lua error in package.lua at line 80: module 'Module:Authority control/config' not found. Template:DMCA