$Id: README,v 1.3 89/11/19 23:15:11 berliner Exp $


			   CVS Kit, Version 1.0

		    Copyright (c) 1989, Brian Berliner

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 1, or (at your option)
    any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

--------------------------------------------------------------------------

This is the first release of CVS -- Concurrent Version System.

CVS is a freely available collection of programs that provide for software
release and revision control functions in a UNIX environment.  It is
designed to work on top of the RCS distribution, V4 (uses the V4 branch
support).  CVS does understand how to parse older RCS formats, but cannot
do any of the fancier features (like vendor branch support) without RCS
branch support.

The conflict-resolution algorithms and much of the administrative file
definitions of CVS were based on the original package written by Dick Grune
at Vrije Universiteit in Amsterdam, and posted to comp.sources.unix in the
volume 6 release sometime in 1986.  This original version was a collection
of shell scripts. 

Brian Berliner from Prisma, Inc. converted the original CVS shell scripts
into reasonably fast C and added many, many features to support software
release control functions.  See the manual page in the "man" directory, and
a copy of the USENIX article presented at the Winter 1990 USENIX
Conference, Washington D.C., is included in the "doc" directory.

This code has been tested extensively on Sun-4 and Sun-3 platforms, all
running SunOS 4.X.  Your mileage may vary for other systems, and I would
really appreciate hearing back on what was necessary to get this beast
working on other platforms.

Installation:

1)  Edit the top-level Makefile (in this directory) and set DESTDIR to the
    location of local binaries.  Also adjust CFLAGS and LDFLAGS
    appropriately as well.  May also need to edit the man/Makefile file to
    be sure that manual pages will be dropped in the correct place for your
    system.

2)  Edit the src/cvs.h header file.  Appropriate things to look at may be
    the hard-coded locations of programs like DIFF, GREP, RM, and SORT.
    Also glance at the default values for the environment variables that
    CVS uses, in particular, the RCSBIN variable, which holds the path to
    where the RCS programs live on your system.

3)  make depend

    To get the Makefiles to use *your* include dependencies, not mine.

4)  make

    This will (hopefully) make the needed CVS binaries within the "src"
    directory.

5)  make install

    If all goes well above, install the binaries and manual pages.
    Depending on your instrallation's configuration, you may need to be
    root to do this.

6)  man cvs

    Take a look at the CVS manual page to see what it can do for you, and
    if it fits your environment (or can possibly be made to fit your
    environment).  If things look good, continue on...

7)  Setup the master source repository.  Choose a directory with ample disk
    space available for source files.  This is where the RCS ",v" files
    will be stored.  Say you choose "/src/master" as the root of your
    source repository.  Make the CVSROOT.adm directory in the root of the
    source repository:  "mkdir /src/master/CVSROOT.adm".  Populate this
    directory with the files from the "examples" directory included with
    this release (loginfo and modules).  Edit these files
    (/src/master/CVSROOT.adm/{loginfo,modules}) to reflect your local
    source repository environment -- they may be quite small initially, but
    will grow as sources are added to your source repository.  Turn these
    files into RCS controlled files:

		cd /src/master/CVSROOT.adm
		ci -m'Initial loginfo file' loginfo
		ci -m'Initial modules file' modules

8)  mkmodules /src/master/CVSROOT.adm

    This will build the ndbm(3) file for the modules database.  mkmodules
    should have been installed above by the "make install" done in step 5.
    If mkmodules cannot be found, check your PATH or try "rehash".

9)  Have all users of the CVS system set the CVSROOT environment variable
    appropriately to reflect the placement of your source repository.  If
    the above example is used, the following commands can be placed in
    user's ~/.login or ~/.profile file:

		setenv CVSROOT /src/master
    for csh users, and
		CVSROOT=/src/master; export CVSROOT
    for sh users.

10) It might be a good idea to jump right in and put the CVS distribution
    directly under CVS control.  From within the top-level directory of the
    CVS distribution (the one that contains this README file) do the
    following commands:

		mkdir $CVSROOT/cvs
		checkin -m 'CVS 1.0 distribution' cvs CVS CVS1_0

11) Having done step 10, one should be able to checkout a copy of the CVS
    distribution and hack away at the sources with the following command:

		cvs checkout cvs

    This will make the directory "cvs" in your current directory and
    populate it with the appropriate CVS files and directories.

12) Remember to edit the modules file manually when sources are checked in
    with "checkin" or "cvs add".  A copy of the modules file for editing
    can usually be retrieved with the "cvs checkout modules" command, and
    definitely with the "cvs checkout CVSROOT.adm" command.

13) PLEASE report any problems to me, berliner@prisma.com (Brian Berliner)
    and I will try to collect patches and enhancements into future CVS
    distributions.  "patch" format files are best, using context diffs,
    if you will.

14) GOOD LUCK!

					Brian Berliner
					berliner@prisma.com
