"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) 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.exe ------------------- this is the CVS program itself
patch.exe ----------------- helps CVS bring files up to date
win32gnu.dll -------------- Dynamic Link Library needed by some of the above
cvs.html ------------------ the CVS manual (point your browser at this)
FAQ ----------------------- CVS Frequently Asked Questions (out of date)
NEWS ---------------------- what's been added to CVS lately
README -------------------- you'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:

        set PATH=C:\NEWDIR;%PATH%

   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:

        set PATH=C:\NEWDIR;%PATH%

   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.exe ------------------ helps CVS compute differences between files
diff3.exe ----------------- also computes differences, in a different way
grep.exe ------------------ helps CVS find strings in files
rcs.exe ------------------- part of RCS, a version control subsystem of CVS
co.exe -------------------- same as above
ci.exe -------------------- same as above
ident.exe ----------------- same as above
merge.exe ----------------- same as above
rcsclean.exe -------------- same as above
rcsdiff.exe --------------- same as above
rcsmerge.exe -------------- same as above
rlog.exe ------------------ same 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.

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

   Setting up the master source repository:
   ----------------------------------------
   See the "Setting up the repository" section of cvs.html for
   details; the quick summary is just to pick some directory. We'll
   use d:\src\master as an example:

        cvs -d :local:d:\src\master 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
   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 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 d:\src\master,
   place the following line in c:\autoexec.bat:

                 set CVSROOT=:local:d:\src\master 

   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" myprog myself myprog_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
   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 c:\other\dir
        cvs checkout myprog

   This will make the directory "myprog" 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
   foo.c, you might then run this CVS command:

        cvs commit -m "Added comment about parsley." foo.c

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

   You may also wish to customize various administrative files in the
   repository, in particular modules.  See cvs.html 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
   comp.software.config-mgmt.  The info-cvs mailing list contains CVS
   discussions; to join send mail to info-cvs-request@gnu.org.

   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
   http://www.cyclic.com/ or contact info@cyclic.com

                - Cyclic Software
                  August, 1998
