Both sides previous revisionPrevious revisionNext revision | Previous revision |
rcs [2025/03/04 18:05] – Initial RCS page creation zilog | rcs [2025/03/05 15:16] (current) – [Basic RCS usage:] zilog |
---|
====== RCS — A System for Version Control ====== | ===== RCS — A System for Version Control ===== |
| |
==== Intro and Background: ==== | ==== Intro and Background: ==== |
The ''**rcs(1)**'' command is also useful, sort of a multi-tool that duplicates some of the functionality of the above commands as well as extending them, i.e. deleting a range of revisions, editing informational text in the log, changing default locking modes, etc. | The ''**rcs(1)**'' command is also useful, sort of a multi-tool that duplicates some of the functionality of the above commands as well as extending them, i.e. deleting a range of revisions, editing informational text in the log, changing default locking modes, etc. |
| |
An illustrated example is probably the best way to convey RCS utility: | === RCS Setup === |
| Not much preparation is needed to get started managing file revisions with RCS. While not mandatory it is highly recommended that a ''RCS'' sub-directory be created in each working directory where, if present, RCS will store the ""//deltas//"" -- special files of the form ''fubar,v'' -- that store the differences (deltas) between revisions of a file under RCS management. If the ''RCS'' sub-directory is not present RCS simply stores those delta files in the working directory. |
| |
## insert session log here ## | === Quick Start === |
| The ''rcsintro(1)'' manpage covers much of the basics of RCS; below is a quick tour: |
| |
| * create a working directory & RCS sub-dir: ''$ mkdir -p ~/rcs_fun/RCS'' |
| * change to working dir & create a file: ''$ cd ~/rcs_fun ; echo 'RCS is awesome!' > fubar'' |
| * make initial commit of test file: ''$ ci -u fubar '' |
| * check file back out & edit again: ''$ co -l fubar && echo 'this file is fubar' >> fubar'' |
| * view diffs (working file vs last checked ver.): ''$ rcsdiff fubar'' |
| * commit new revision of file: ''$ ci -u fubar'' |
| * view log of changes: ''$ rlog fubar'' |
| |
| Specific revisions can be acted upon by passing them to the various commands in the form ''-r<start>[ -r<end>]'' ; by default RCS compares the working copy to the last checked in version. |
| |
| === RCS by Example === |
| While comprehensive coverage of all RCS can do is beyond the scope of this introductory tutorial, the basics can be grasped fairly easily and are perhaps best conveyed via an annotated [[RCS Sample Session]]. |
| |
| ==== RCS Quirks ==== |
| * no space allowed between options and arguments, i.e. use ''$ co -r1.3'' //not// ''$ co -r 1.3'' |
| * delta files (''fubar,v'') end up in the working directory if no ''../RCS'' directory is present |
| * lock files when you check them //out//, unlock them when you check them //in// |
| * don't use **-r** by itself with the ''ci(1)'' command -- it's a //reset// option |
| |
==== Documentation: ==== | ==== Documentation: ==== |
Aside from the ''man(1)'' and ''info(1)'' pages, Tichy's original 1985 paper((https://www.gnu.org/software/rcs/tichy-paper.pdf)) still provides an good introduction to using RCS. For more in-depth coverage the following may prove helpful: | Aside from the ''man(1)'' and ''info(1)'' pages, Tichy's original 1985 paper((https://www.gnu.org/software/rcs/tichy-paper.pdf)) still provides an good introduction to using RCS. For more in-depth coverage the following may prove helpful: |