"Concurrent Versions System" (CVS) is a version-control system that helps programmers and authors keep histories of their files. It also aids collaborators working together on projects by allowing them to all work on the project simultaneously (even in the same file), and facilitating communications and record-keeping."

See the CVS manual (cvs.html or the CVS Help ) for details.

This README describes how to install CVS under Windows 95/NT, basic CVS usage, and how to get help.

First, make sure you have the following files:

cvs.exethis is the CVS program itself
patch.exehelps CVS bring files up to date
win32gnu.dllDynamic Link Library needed by some of the above
cvs.htmlthe CVS manual (point your browser at this)
FAQCVSFrequently Asked Questions (out of date)
NEWSwhat's been added to CVS lately
READMEyou're looking at it

1. Installing CVS

Copy all the .exe files above and win32gnu.dll to a directory in your PATH. If you don't know what directories are in your PATH, type this at an MS-DOS prompt:

echo %PATH%

and you will see a semicolon-separated list of directories.

The alternative to using a previously-existing directory:

If you want to run CVS from the directory you unpacked it in, or make a new directory for it and its helper programs to live in, then you'd need to add that directory to your PATH before trying to run CVS. To do that, add the directory to the PATH list in your c:\autoexec.bat file. (Don't forget the separating semicolon!) The PATH list is a line starting with "PATH=".

On Windows 95, autoexec.bat might not already exist. In that case, just create a new file containing the following line:


Once you have made that change to autoexec.bat, you should reboot the machine for the changes to take effect. If you don't want to reboot right now, you can make the change take effect immediately by typing this at the MS-DOS prompt:


Of course, replace "NEWDIR" with your new directory.

1a. Upgrading from a previous version of CVS

Basically you just need to replace the files above with the new versions. In addition, if your previous CVS installation contains the following files you don't need them any more (unless you were using them other than via CVS):

diff.exehelps CVS compute differences between files
diff3.exealso computes differences, in a different way
grep.exehelps CVS find strings in files
rcs.exepart of RCS, a version control subsystem of CVS
co.exesame as above
ci.exesame as above
ident.exesame as above
merge.exesame as above
rcsclean.exesame as above
rcsdiff.exesame as above
rcsmerge.exesame as above
rlog.exesame as above

2. Using CVS

The manual "Version Management with CVS" by Per Cederqvist et al, is available online; point your Web browser at the file cvs.html or the CVS Help .

Below is a "Quick Start" guide for the impatient; we hope it's useful, but look in cvs.html or the CVS Help for in-depth explanations.

Setting up the master source repository:

See the "Setting up the repository" section of cvs.html or the CVS Help for details; the quick summary is just to pick some directory. We'll use p:\nettest\sources as an example:

cvs -d :local:p:\nettest\controlled_sources init 

(The prefix ":local:" tells CVS to access the repository directly, rather than via the CVS client/server protocol. It is also possible -- and quite common -- to use CVS with repositories

located on other machines; see "Remote repositories" in cvs.html or the CVS Help for more about this.)

The `init' instruction to CVS told it to prepare the directory d:\src\master to hold master copies of version-controlled files. It did not actually put any files under version control, however; see "Starting a project with CVS" in cvs.html or the CVS Help for more on that.

Next, have all users of the CVS system set the CVSROOT environment variable appropriately to reflect the placement of your source repository. Supposing the repository will be in p:\nettest\sources, place the following line in c:\autoexec.bat:

set CVSROOT=:local:p:\nettest\controlled_sources

If the CVSROOT variable is not already set in your current command environment, set it now by typing the above line at the command prompt (or reboot).

Putting things in the repository:

You will need to have the CVSROOT environment variable set to continue on to the next step. It might be a good idea to jump right in and put some sources or documents directly under CVS control (for convenience, the rest of this README will assume we're dealing with source code). From within the top-level directory of your source tree, run a command like the following:

cvs import -m "Initial import" . Trunk unifaceapp_1_0

(Those last three items are, respectively, a repository location, a "vendor tag", and a "release tag". You don't need to understand them yet, but read the section "Starting new projects" in cvs.html or the CVS Help for details).

Checking stuff in and out of the repository:

Having done the previous step, you should be able to check out a fresh working copy of your sources and hack away. First go to some other directory than the one where you imported the sources, then check out a new copy of them from the repository:

cd p:\nettest\other

cvs checkout globals

This will make the directory "globals" in your current directory and populate it with the appropriate source files and directories. This new directory tree is called a "working copy" of the sources; after you've made changes to them, you can "commit" them back into the master repository. For example, if you added a comment to file globals/M-USYS-USA.XML, you might then run this CVS command:

cvs commit -m "Added comment about parsley." globals/M-USYS-USA.XML

The "-m" flag records the log message it precedes as part of M-USYS-USA.XML 's history. Later, you could go back and read over the various log messages of M-USYS-USA.XML (again, see cvs.html or the CVS Help for details).

You may also wish to customize various administrative files in the repository, in particular modules. See cvs.html or the CVS Help for details.

Some things to keep in mind: you may need to make sure that the system doesn't think that you have an empty login name, or else you could get "missing author" messages and other strange behaviors. Note that setting the USER environment variable does not consistently override the system login name. If you do not have a c:\temp directory, RCS will give an error. One solution is to create c:\temp, or if you want RCS to put temporary files in a different directory, set the TMPDIR environment variable to point to that directory.

If you ever decide to uninstall CVS, simply remove all the files you copied when installing, and undo any changes to autoexec.bat.

3. Getting Help

If you need help with CVS, or think you have found a bug, one option is to turn to mailing lists and newsgroups. The newsgroup for CVS (and other version control systems) is The info-cvs mailing list contains CVS discussions; to join send mail to

If you are looking for a guaranteed response instead, you may wish to investigate paid support from Cyclic Software or other providers of CVS consulting/support. For more information, visit or contact

-Cyclic Software

August, 1998

Configuration information
Taking control
Releasing a form
Releasing a form and application model
Releasing registers
Merging code changes
Final notes

UD6 Overview
A methodology to Uniface source code control

$Revision: 1.11 $ $Date: 2011/02/28 02:56:33 $[go to top]