"-D date" command line option. There is code in the original to
handle a special case. If the date search finds revision 1.1 it
is supposed to check whether revision 1.1.1.1 has the same date
stamp, which would indicate that the file was originally brought
in with "cvs import". In that case it is supposed to return the
vendor branch version 1.1.1.1.
However, there is a bug in the code. It actually compares the date
of revision 1.1 for equality with the date given on the command
line -- clearly wrong. This commit fixes the coding bug.
There is an additional bug which is _not_ fixed in this commit.
The date comparison should not be a strict equality test. It should
allow a fudge factor of, say, 2-3 seconds. Old versions of CVS
created the two revisions with two separate invocations of the RCS
"ci" command. We have many old files in the tree in which the
dates of revisions 1.1 and 1.1.1.1 differ by 1 second.
Approved by: peter
checkouts from a local repo and committing via remote cvs. A cvs -d
override of the mismatched CVS/Root files was missing. This is a client
side fix, I'd appreciate it if the folks having trouble with this would
update their cvs client and pay particular attention next time..
The merge turned up a long-standing bug in local additions. I'm not
quite sure it's right yet. (the code in question is dealing with
diffs relative to "HEAD" and dead revisions).
Add '-g' main option to cvs to better support shared-group access
to a common checked-out *working* set by multiple users. See manual
page for details.
and we have not done an explicit 'cvs login', then use a default password
of "anoncvs". This allows things like:
setenv CVSROOT :pserver:anoncvs@anoncvs.freebsd.org:/cvs
cvs checkout src (without doing the normal 'cvs login' for pserver mode)
but this runs over the :pserver: protocol rather than the more troublesome
rsh. Naturally, the server had better be running in -R (readonly) mode :-)
CVSROOT/passwd file is empty. A 'cvs login' still seems to be required
since the cvs client doesn't seem to believe it's possible to not need
a password (yet :-). This is intended for cheap anoncvs use.
This is mostly intended for use on freefall where we'd like to provide
a passwd file for easy anoncvs mirroring access, but don't want to open
up the pserver on freefall itself.
While here, some initial tweaks intended for allowing an empty pserver
password. I'm not sure that this works yet.
while calling libdiff. It's too ugly and not worth the recursion problems
when there is a malloc failure (which writes to stderr - now diverted via
the buf system, which calls malloc, which causes another error message etc).
We can live with the standard artificial slowdown, but reduce the time a
bit and only delay when we really need to (ie: when running as a server).
The usleep time could probably use some tuning, it basically needs to
replace the time that it used to take to fork a large process, exec gnudiff
and the time that gnudiff took before writing the initial output.
This eliminates a whole mess of other hacks I was considering that changed
use of xmalloc to alloca() etc. It was going too fast in the wrong
direction.
1998-03-07 Tim Pierce <twp@skepsis.com>
* rcs.c (RCS_checkout): Negation bug when checking out symlinks:
existence_error should be !existence_error.
This shouldn't cause any major merge problems later.
affects speed of doing 'cvs diff' (in all modes) and 'cvs update' over the
network.
1: don't pause at all unless running in server protocol mode.
2: if running in server protocol mode, do a kludge that intercepts the
stdout and stderr write functions and diverts them to cvs_output() and
cvs_outerr(). Yes, this might be done with fwopen() etc, but that also
requires copying "FILE" structs since you can't freopen stdout etc and
specify functions at the same time.
This HACK will go away once the cvs folks have done their changes to the
library version of gnu diff to use the callbacks as mentioned in the
comments.