freebsd-dev/contrib/cvs
Peter Wemm 13aee6bd41 Fix a serious bug in the recursion processor. When descending a tree,
the descend can jump several directories down in one hit, eg: when a user
mentions multiple directories on the command line, eg: "cvs diff
sys/i386/isa/snd sys/sys".  The problem is that the chdir()s are
pushed/popped to account for this, but the "full path" merely has
the last component chopped off on the way back up.  This busts lots
of things when the recursion is backing up more than one directory (such
as in the example).  This causes 'cvs diff' to emit bogus Index: lines,
'cvs update' to do really stupid things, 'cvs commit' to record incorrect
pathnames etc.  I'm not sure that what I've done is quite correct, there
seems to be a comment that implies some sort of problem with "." vs. ""
equivalence or not, perhaps this is a problem on some other OS's, but
I've not (yet) found any problems.  This bug has been present since
at least cvs-1.8.1.

This should fix problems noted by several people including asami and jmg.
1997-10-12 12:47:05 +00:00
..
contrib remove some stray files 1997-06-22 12:50:33 +00:00
doc Import cvs-1.9.10 1997-06-22 10:55:49 +00:00
lib Import cvs-1.9.10 1997-06-22 10:55:49 +00:00
man Delete extranious $Id$ - it's not expanded on -ko files 1997-05-15 22:56:29 +00:00
src Fix a serious bug in the recursion processor. When descending a tree, 1997-10-12 12:47:05 +00:00
tools Import cvs-1.9.10 1997-06-22 10:55:49 +00:00
acconfig.h Import of cvs-1.9.9-970515 onto vendor branch. 1997-05-15 22:46:24 +00:00
BUGS Import a slightly newer version of 1.9.9 (as at 970523) that has fixed a 1997-05-23 14:48:05 +00:00
ChangeLog Import cvs-1.9.10 1997-06-22 10:55:49 +00:00
ChangeLog.zoo Import of slightly trimmed cvs-1.8 distribution. Generated files 1996-08-20 23:46:10 +00:00
config.h.in Import cvs-1.9.10 1997-06-22 10:55:49 +00:00
configure Import cvs-1.9.10 1997-06-22 10:55:49 +00:00
configure.in Import cvs-1.9.10 1997-06-22 10:55:49 +00:00
COPYING Import of slightly trimmed cvs-1.8 distribution. Generated files 1996-08-20 23:46:10 +00:00
COPYING.LIB Import of slightly trimmed cvs-1.8 distribution. Generated files 1996-08-20 23:46:10 +00:00
cvs-format.el Import of cvs-1.9.9-970515 onto vendor branch. 1997-05-15 22:46:24 +00:00
DEVEL-CVS Import cvs-1.9.10 1997-06-22 10:55:49 +00:00
FAQ Import of cvs-1.9.9-970515 onto vendor branch. 1997-05-15 22:46:24 +00:00
FREEBSD-upgrade update the 'zapped files' list 1997-06-22 11:06:30 +00:00
HACKING Import of cvs-1.9.9-970515 onto vendor branch. 1997-05-15 22:46:24 +00:00
INSTALL Import of cvs-1.9.9-970515 onto vendor branch. 1997-05-15 22:46:24 +00:00
install-sh Import of slightly trimmed cvs-1.8 distribution. Generated files 1996-08-20 23:46:10 +00:00
Makefile.in Import cvs-1.9.10 1997-06-22 10:55:49 +00:00
MINOR-BUGS Import of cvs-1.9.9-970515 onto vendor branch. 1997-05-15 22:46:24 +00:00
mkinstalldirs Import of slightly trimmed cvs-1.8 distribution. Generated files 1996-08-20 23:46:10 +00:00
NEWS Import cvs-1.9.10 1997-06-22 10:55:49 +00:00
PROJECTS Import of cvs-1.9.9-970515 onto vendor branch. 1997-05-15 22:46:24 +00:00
README Import of cvs-1.9.9-970515 onto vendor branch. 1997-05-15 22:46:24 +00:00
stamp-h.in Import of slightly trimmed cvs-1.8 distribution. Generated files 1996-08-20 23:46:10 +00:00
TESTS Import of cvs-1.9.9-970515 onto vendor branch. 1997-05-15 22:46:24 +00:00
TODO Import of cvs-1.9.9-970515 onto vendor branch. 1997-05-15 22:46:24 +00:00

				CVS Kit

		Copyright (c) 1993-1994 Brian Berliner
	   Copyright (c) 1992 Brian Berliner and Jeff Polk
	       Copyright (c) 1989-1992, Brian Berliner
			 All Rights Reserved

    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.

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

Welcome to CVS!

If you have problems or think you have found a bug in CVS, see the
section BUGS in the CVS manual (also known as Version Management with
CVS by Per Cederqvist et al, or cvs.texinfo--see below for details).

If you are thinking of submitting changes to CVS, see the
file HACKING.

Please consult the INSTALL file for information on tested
configurations.  If you have a comment about an already tested
configuration, or have tried CVS on a new configuration, please let us
know as described in INSTALL.  Free software only works if we all help
out.

Finally, we cannot guarantee that this release will not completely wipe out
all of your work from your system.  We do some simple testing before each
release, but you are completely on your own.  We recommend testing this
release on a source repository that is not critical to your work.  THIS
SOFTWARE IS SUPPLIED COMPLETELY "AS IS".  NO WARRANTY....

Thanks for your support!

	-The CVS Team

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

What Is CVS?

CVS is a version control system, which allows you to keep old versions
of files (usually source code), keep a log of who, when, and why
changes occurred, etc., like RCS or SCCS.  It handles multiple
developers, multiple directories, triggers to enable/log/control
various operations, and can work over a wide area network.  The
following tasks are not included; they can be done in conjunction with
CVS but will tend to require some script-writing and software other
than CVS: bug-tracking, build management (that is, make and make-like
tools), and automated testing.

And a whole lot more.  See the manual for more information.

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

Notes to people upgrading from a previous release of CVS:

See the NEWS file for a description of features new in this version.

See the Compatibility section of the manual for information on
compatibility between CVS versions.  The quick summary is that as long
as you not using the optional watch features, there are no
compatibility problems with CVS 1.5 or later.

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

Installation:

Please read the INSTALL file for installation instructions.  Brief summary:

	$ ./configure
	$ make
	(run the regression tests if desired)
	$ make install
	(create a repository if you don't already have one)

The documentation is in the doc subdirectory.  cvs.texinfo is the main
manual; cvs.info* and cvs.ps are the info and postscript versions,
respectively, generated from cvs.texinfo.  The postscript version is
for US letter size paper; we do this not because we consider this size
"better" than A4, but because we believe that the US letter version
will print better on A4 paper than the other way around. If you want a
version formatted for A4, add the line @afourpaper near the start of
cvs.texinfo and re-generate cvs.ps using TeX.

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

* How do I get up-to-date information and information about other
versions of CVS?

On the web, http://www.loria.fr/~molli/cvs-index.html.

The mailing list for CVS is info-cvs@prep.ai.mit.edu.  Send
subscription and removal requests for that list to
info-cvs-request@prep.ai.mit.edu.

The newsgroup for CVS (and other configuration management systems) is
comp.software.config-mgmt.  There is not yet a CVS-specific newsgroup,
but perhaps if comp.software.config-mgmt gets enough CVS discussion,
then it will be possible to create one.

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

Credits:

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 <dick@cs.vu.nl>, and posted to
comp.sources.unix in the volume 6 release sometime in 1986.  This original
version was a collection of shell scripts.  I am thankful that Dick made
his work available.

Brian Berliner from Prisma, Inc. (now at Sun Microsystems, Inc.)
<berliner@sun.com> 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.  A copy of the
USENIX article presented at the Winter 1990 USENIX Conference, Washington
D.C., is included in the "doc" directory.

Jeff Polk from BSDI <polk@bsdi.com> converted the CVS 1.2
sources into much more readable and maintainable C code.  He also added a
whole lot of functionality and modularity to the code in the process.
See the bottom of the NEWS file (from about 1992).

david d `zoo' zuhn <zoo@armadillo.com> contributed the working base code
for CVS 1.4 Alpha.  His work carries on from work done by K. Richard Pixley
and others at Cygnus Support.  The CVS 1.4 upgrade is due in large part to
Zoo's efforts.

David G. Grubbs <dgg@odi.com> contributed the CVS "history" and "release"
commands.  As well as the ever-so-useful "-n" option of CVS which tells CVS
to show what it would do, without actually doing it.  He also contributed
support for the .cvsignore file.

The Free Software Foundation (GNU) contributed most of the portability
framework that CVS now uses.  This can be found in the "configure" script,
the Makefile's, and basically most of the "lib" directory.

K. Richard Pixley, Cygnus Support <rich@cygnus.com> contributed many bug
fixes/enhancement as well as completing early reviews of the CVS 1.3 manual
pages.

Roland Pesch, then of Cygnus Support <roland@wrs.com> contributed
brand new cvs(1) and cvs(5) manual pages.  Thanks to him for saving us
from poor use of our language!

Paul Sander, HaL Computer Systems, Inc. <paul@hal.com> wrote and
contributed the code in lib/sighandle.c.  I added support for POSIX, BSD,
and non-POSIX/non-BSD systems.

Jim Kingdon and others at Cygnus Support <info@cygnus.com> wrote the
remote repository access code.

There have been many, many contributions not listed here.  Consult the
ChangeLog files in each directory for a more complete idea.

In addition to the above contributors, the following Beta testers
deserve special mention for their support.  This is only a partial
list; if you have helped in this way and would like to be listed, let
bug-cvs know (as described elsewhere in this file).

	Mark D. Baushke <mdb@cisco.com>
	Per Cederqvist <ceder@signum.se>
	J.T. Conklin <jtc@cygnus.com>
	Vince DeMarco <vdemarco@fdcsrvr.cs.mci.com>
	Paul Eggert <eggert@twinsun.com>
	Lal George <george@research.att.com>
	Dean E. Hardi <Dean.E.Hardi@ccmail.jpl.nasa.gov>
	Mike Heath <mike@pencom.com>
	Jim Kingdon <kingdon@cygnus.com>
	Bernd Leibing <bernd.leibing@rz.uni-ulm.de>
	Benedict Lofstedt <benedict@tusc.com.au>
	Dave Love <d.love@dl.ac.uk>
	Robert Lupton the Good <rhl@astro.princeton.edu>
	Tom McAliney <tom@hilco.com>
	Eberhard Mattes <mattes@azu.informatik.uni-stuttgart.de>
	Jim Meyering <meyering@comco.com>
	Thomas Mohr <mohr@lts.sel.alcatel.de>
	Thomas Nilsson <thoni@softlab.se>
	Raye Raskin <raye.raskin@lia.com>
	Harlan Stenn <harlan@landmark.com>
	Gunnar Tornblom <gunnar.tornblom@senet.abb.se>
	Greg A. Woods <woods@planix.com>

Many contributors have added code to the "contrib" directory.  See the
README file there for a list of what is available.  There is also a
contributed GNU Emacs CVS-mode in tools/pcl-cvs.