Revision Control System and Concurrent Versions System in Linux
The Revision Control System (RCS) is a set of tools for managing multiple revisions of a single file.
To store a revision of a file so that RCS can keep track of it, you check in the file with RCS. This deposits the revision of the file in an RCS repository—a file that RCS uses to store all changes to that file. RCS makes a repository file with the same file name as the file you are checking in, but with a ‘,v’ extension appended to the name. For example, checking in the file ‘test.text’ with RCS creates a repository file called ‘test.text,v’.
Another revision control system, Concurrent Versions System (CVS), is used for tracking collections of multiple files whose revisions are made concurrently by multiple authors. While much less simple than RCS, it is very popular for managing free software projects on the Internet.
When you have a version of a file that you want to keep track of, use the ci command to check in that file with RCS.
Type ci followed by the name of a file to deposit that file into the RCS repository. If the file has never before been checked in, ci prompts for a description to use for that file; each subsequent time the file is checked in, ci prompts for text to include in the file’s revision log. Log messages may contain more than one line of text; type a period (‘.’) on a line by itself to end the entry.
For example, suppose the file ‘novel’ contains this text:
This is a tale about many things, including a long voyage across America.
To check in the file ‘novel’ with RCS, type:
$ ci novel novel,v <-- novel enter description, terminated with single ’.’ or end of file: NOTE: This is NOT the log message! >> The Great American Novel. >> . $
This command deposits the file in an RCS repository file called ‘novel,v’, and the original file, ‘novel’, is removed. To edit or access the file again, you must check out a revision of the file from RCS with which to work.
Whenever you have a new revision that you want to save, use ci as before to check in the file. This begins the process all over again.
For example, suppose you have checked out the first revision of ‘novel’ and changed the file so that it now looks like this:
This is a very long tale about a great many things, including my long voyage across America, and back home again.
To deposit this revision in RCS, type:
$ ci novel novel,v <-- novel new revision: 1.2; previous revision: 1.1 enter log message, terminated with single ’.’ or end of file: >> Second draft. >> . $
If you create a subdirectory called ‘RCS’ (in all uppercase letters) in the current directory, RCS recognizes this specially named directory instead of the current directory as the place to store the ‘,v’ revision files. This helps reduce clutter in the directory you are working in.
If the file you are depositing is a text file, you can have RCS insert a line of text, every time the file is checked out, containing the name of the file, the revision number, the date and time in the UTC (Coordinated Universal Time) time zone, and the user ID of the author. To do this, put the text ‘$Id$’ at a place in the file where you want this text to be written. You only need to do this once; each time you check the file out, RCS replaces this string in the file with the header text.
You should use the co command to check out a revision of a file from an RCS repository.
To check out the latest revision of a file that you intend to edit (and to check in later as a new revision), use the -l (for “lock”) option. Locking a revision in this fashion prevents overlapping changes being made to the file should another revision be accidentally checked out before this revision is checked in.
To check out the latest revision of the file ‘novel’ for editing, type:
$ co -l novel
This command checks out the latest revision of file ‘novel’ from the ‘novel,v’ repository, writing it to a file called ‘novel’ in the current directory. (If a file with that name already exists in the current directory, co asks whether or not to overwrite the file.) You can make changes to this file and then check it in as a new revision.
You can also check out a version of a file as read only, where changes cannot be written to it. Do this to check out a version to view only and not to edit.
To check out the current version of a file for examination, type the co command followed by the name of the file.
To check out the current revision of file ‘novel’, but not permit changes to it, type:
$ co novel
If you like to learn more about Linux, taking the following courses is highly recommended:
Here is the list of our 9 free self-paced courses that are highly recommended:
If you like to learn more about Linux, take the following live Linux classes is highly recommended:
If you like to learn more about Linux, reading the following articles and tutorials is highly recommended:
We offer private custom tutoring classes both online and in DC, MD and VA for almost all of our courses or bootcamps. Give us a call or email us to discuss your needs.
$50 Limited OfferREGISTER NOW