$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