RCS

RCS was a revolution in its time, and is the underlying basis for CVS.

Pros

  • It’s better than nothing.

Cons

  • Does not allow concurrent access to the same file.

  • Does not have the inherent concept of a central repository, though you can go out of your way to create one using symbolic links.

  • No concept of remote repositories.

  • Only tracks changes to files, and does not store or consider directories at all.

  • Poor support for binary files, and no support for other objects such as symbolic links. Unlike CVS or SVN, which have a single main end-user binary, RCS is a collection of binaries.

Example

Create a new script directory for personal use in a home directory:

/home/jp$ mkdir -m 0754 bin

Create some scripts:

/home/jp$ cd bin

/tmp/scripts/bin$ cat << EOF > hello
> #!/bin/sh
> echo 'Hello World!'
> EOF

/home/jp/bin$ ci hello
hello,v  <--  hello
enter description, terminated with single '.' or end of file:
NOTE: This is NOT the log message!
>> Obligatory Hello World
>> .
initial revision: 1.1
done

/home/jp/bin$ ls -l
total 4.0K
-r--r--r--  1 jp jp 228 Jul 20 02:25 hello,v

Huh? What happened? It turns out that if a directory called RCS does not exist, the current directory is used for the RCS file. And if the -u or -l switches are not used, the file is checked in and then removed. -l causes the file to be checked back out and locked so you can edit it, while -u is unlocked (that is, read-only). OK, let’s try that again. First, let’s get our file back, then create an RCS directory and check it in again. ...

Get bash Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.