A Warped RCS/CVS HowTo

Written by Henry Sobotka

Getting and Installing RCS for OS/2
The current version of RCS is 5.7, released in June 1995. Its OS/2 port, presently maintained by Kai-Uwe Rommel, followed about a year later. Since then, there have been five mostly bug-fix releases of the port, the latest dated March 28, 1999.

The package, in three files named rcs57pc1.zip (binaries), rcs57pc2.zip (documentation) and rcs57pc3.zip (source code), can be downloaded from the RCS home site. As the zip contents are neatly sorted, you need simply get the binaries, or binaries and docs, to run the program.

The PC distribution contains separate binaries for OS/2 (16- or 32-bit), DOS and Win32. When unzipping the archives, be sure to maintain the directory structure. You'll then find the exec files in four separate subdirectories within /bin. Installation simply involves getting the appropriate OS/2 binaries into your system PATH, and rcslib.dll into LIBPATH. You can do this by either adding their existing location to the PATH and LIBPATH statements in config.sys, and booting for the changes to take effect, or by copying or moving them to directories already in your PATH and LIBPATH.

You'll also find copies of emx.dll and emxlibcs.dll in the /os2-32 subdirectory. If you already have the EMX runtime package installed, be sure to delete or rename these two files to avoid the problems caused by duplicate DLLs. Similarly, if you already have GNU diffutils 2.7.1 or higher installed and in your PATH, you won't need the diff.exe, diff3.exe, cmp.exe and sdiff.exe distributed with RCS.

If you installed the software properly, you should be able to run RCS and set up revision control in any directory on your hard drive(s).

The extremely thorough documentation package creates a /doc subdirectory with user manuals for both RCS and diff in four formats: HTML, INF, PS and INFO, along with PS- and TXT-format versions of a 1995 paper by Walter Tichy about RCS, and a summary description of RCS functions. The /man directory contains HTML, PS and TXT versions of the man page for the various RCS commands (ci, co, merge etc.)

Obviously, if you're low on drivespace or happen to be a byte-Scrooge, you can safely delete the subdirectories with the binaries you won't use, and keep just one copy of each document in your favorite format.

Should you download the sources, you'll also get a /texi directory with TEX versions of all the documents for typesetting and printing, and a src/man subdirectory with the original man pages. The source distribution includes the code and makefiles for not only RCS, but also GNU diffutils 2.7.1 and, in /diff16, the 16-bit port of GNU diff 1.15 for OS/2 2.1 and DOS.

Getting and Installing CVS for OS/2
The current version of CVS is 1.10, cod?named "Halibut". The OS/2 port by Andreas Huber can be found in cvs110.zip at Hobbes or the CVS website at Cyclic Software. It requires the EMX runtime package (0.9c or higher). Originally, RCS and GNU diffutils also had to be installed, but their functions were later integrated into CVS and, since November 1997, they have no longer been prerequisites.

After unzipping with the directory structure intact, all you have to do is add the cvs/bin directory to your PATH statement in config.sys and reboot, or copy or move the binaries to a directory already in your PATH. If you plan to set up a local repository, you must also create a directory for it and set a CVSROOT variable specifying the location. This can be done in config.sys or as needed at an OS/2 command prompt.

But if you want to obtain code from outside CVS servers, you should also set the HOME environment variable (if you don't already have it) to any directory on your system. With this, CVS can keep the file it uses for interaction with public servers (pservers) in the default location. Or to override the default values, you can add a set CVS_PASSFILE=[full path and filename with forward ("/") slashes]

line to config.sys before rebooting. The .cvspass file lists the public servers (pservers) you connect to along with your password for each one. As a result, you only have to log in once (i.e. once and for all) with each server so that CVS can record the password. Subsequently, you need only set CVSROOT to the pserver you want to use and type CVS commands; the login is handled automatically and quietly (no output unless it fails) in the background.

If you're going to maintain a local repository as well as connect to pservers, you might consider writing a one-line .cmd file for each server. For example, a cvssrc.cmd for the pserver that carries the CVS source code would read: set CVSROOT=:pserver:cvs@cvs.scriptics.com:/cvsroot

This way you just have to type "cvssrc" followed by a CVS command, or by "cvs login" the first time you connect to that server. As the login name and password for each public server varies, you'll have to read a site's CVS instructions for details.

If you're setting up your own CVS server or local repository, you'll also have to initialize it by running "cvs init". Server installation requires a few more steps detailed in the README found in the root /cvs directory. The /scripts subdirectory contains several useful routines for local and server setups.

Otherwise, you might also want to put the documentation on your desktop by running install.cmd in the /book subdirectory. This creates a folder named "CVS" where you'll find an INF-formatted CVS Introduction, CVS Reference, and CVS Client/Server Protocol Reference.

The /src directory doesn't have the complete sources. It holds BUILD instructions, a diff patch to apply to the mainline CVS 1.10 distribution, and emx-new.zip to unzip on top of the patched code.

Finally, jCVS is a Java front-end for CVS. You won't find it in the /jCVS-4.7.2 subdirectory, just instructions on how to get and install the program together with a patch for OS/2 in diffs, and a command script for creating desktop objects. The current version of jCVS is 4.7.5 (a 5.0 beta is also available). Properties.txt for which the patch is intended has become defaults.txt, so you'll have to apply the fix manually. The install.cmd script, however, can be used as-is to create desktop objects. Make sure your CLASSPATH is set up properly, save the edited /source/com/ice/cvs/defaults.txt in your HOME directory as jcvsrc.txt so that jCVS can find it, and you should be able to run the current distribution more or less out-of-the-box by downloading either the UNIX or Windows source package. There'll be more about jCVS when we take a look at front-ends in an upcoming instalment of The Anon CVS Bazaar series.