Commit Graph

66 Commits

Author SHA1 Message Date
peter
474b0e97b3 Remove my hacks for capturing stdout/stderr through the protocol channel
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-05-27 15:19:23 +00:00
phk
4c734c0e4d .Sh ENVIRONMENT VARIABLES -> .Sh ENVIRONMENT
PR:		6599
Reviewed by:	phk
Submitted by:	Josh Gilliam <josh@quick.net>
1998-05-13 07:57:49 +00:00
peter
05ae376d90 Argh!.. Spot the deliberate mistake that was probably causing the
leftover files in /tmp..  (this commit brought to you by 'cvs update -j')
1998-04-11 16:12:07 +00:00
peter
d0208572aa Tweak from the cvs sources just after the 1.9.26 release:
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.
1998-03-11 09:30:51 +00:00
peter
6b449debea Merge changes from vendor branch into mainline 1998-03-10 13:58:02 +00:00
peter
a194b78bd2 This commit was generated by cvs2svn to compensate for changes in r34461,
which included commits to RCS files with non-trunk default branches.
1998-03-10 13:40:57 +00:00
peter
0c111e2b51 Import cvs-1.9.26 onto vendor branch 1998-03-10 13:40:57 +00:00
peter
d5c5dbdaff A hack to work around the sleep prior to calling the built-in diff. This
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.
1998-02-14 09:47:14 +00:00
peter
d7aa12e045 Reduce the sleep(1) inbetween each diff, as suggested by bde some time
ago.  The real fix is rather large.
1998-02-08 06:48:37 +00:00
peter
1dfdccebc8 Cosmetic cleanups for the local tag support. Since rcs isn't called
anymore, don't do all the putenv's for it's benefit.
1998-01-31 01:39:40 +00:00
peter
8d90081216 Merge vendor changes to files that we've touched onto mainline.
(If only all import/merges were this trivial :-)
1998-01-30 15:35:26 +00:00
peter
c3a8ee0e80 Import cvs-1.9.24 since it came quite soon after the snapshot that was
imported a few days ago.  There is very little difference, except that
the remote protocol apparently supports wrappers and -k options better.
1998-01-30 15:31:47 +00:00
peter
2e8dbe568b This commit was generated by cvs2svn to compensate for changes in r32896,
which included commits to RCS files with non-trunk default branches.
1998-01-30 15:31:47 +00:00
peter
1d4373c3ec Update import instructions from last time. 1998-01-30 15:09:55 +00:00
peter
6669d79e32 Merge CYCLIC branch changes 1998-01-26 04:50:17 +00:00
peter
ef35b33b9f Restore file that was inadvertently deleted last time 1998-01-26 04:48:56 +00:00
peter
09c3704f4b Remove stray files 1998-01-26 04:47:16 +00:00
peter
2c9ec089a9 missing bracket 1998-01-26 03:54:53 +00:00
peter
164a615da2 Merge changes from CYCLIC onto main branch 1998-01-26 03:29:29 +00:00
peter
7a4c09bb43 Merge changes from CYCLIC branch onto mainline. rcs.[ch] still to come. 1998-01-26 03:24:11 +00:00
peter
e6e45661e4 Import cvs-1.9.23 as at 19980123. There are a number of really nice
things fixed in here, including the '-ko' vs. -A problem with
remote cvs which caused all files with -ko to be resent each time
(which is damn painful over a modem, I can tell you).  It also found a
heap of stray empty directories that should have been pruned with the -P
flag to cvs update but were not for some reason.

It also has the fully integrated rcs and diff, so no more fork/exec
overheads for rcs,ci,patch,diff,etc.  This means that it parses the control
data in the rcs files only once rather than twice or more.

If the 'cvs diff' vs. Index thing is going to be fixed for future patch
compatability, this is the place to do it.
1998-01-26 03:09:57 +00:00
peter
6389db38d7 This commit was generated by cvs2svn to compensate for changes in r32785,
which included commits to RCS files with non-trunk default branches.
1998-01-26 03:09:57 +00:00
ache
13e5834cba Back out my -L change, now "patch -I" usage supposed to get Index:
precedence
1998-01-21 15:20:29 +00:00
ache
6057fb933d Fix wrong ---/*** names produced using -L diff option
CVS gurus from info-cvs agrees that previous Index: usage is bogus
1998-01-16 06:00:36 +00:00
julian
993698cd4d Allow a -D'date' option to be included with a -r'branch'
on a checkout.
this allows us to do:
cd /usr/src/sys
cvs update -rRELENGE_2_2 -D"Yesterday"
which has been a feature sorely needed for any project with active branches.

warning: this breaks on usr.sbin/pkg_install for some reason.
everything else works as advertised.
(other things allready break on pkg_install, so it's not the fault of
this patch, it just falls faul of another bug somewhere)
If I had more time I'd make -r always accept the same syntax as -j (tag:data)
1998-01-12 06:51:07 +00:00
peter
beb1572d35 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
peter
824521f8bf Fix a braino in the Attic/ removal code for $CVSHeader$ that originated
from XFree86.  I think this was harmless, the strncmp happened always
rather than being optimised out.

Submitted by: jdp
1997-08-22 06:57:30 +00:00
peter
813bc0386e oops, missed a debug printf somehow.. 1997-08-19 11:29:01 +00:00
peter
20eb45393a Redo the $CVSHeader$ support to use code similar to that from David Dawes
but adapted to run within cvs instead of rcs.
The stuff I hacked together didn't strip out "/Attic/" for files
on branches when the HEAD version was cvs rm'ed.
1997-08-19 11:21:34 +00:00
peter
7b13dec5b4 Apply Bill Fenner's patch for the lost vendor branch bug - I've looked
over the code too and it makes sense to me.

PR: 4033
1997-07-05 02:15:42 +00:00
peter
0a4476a7fb remove some stray files 1997-06-22 12:50:33 +00:00
peter
10ace94da8 update the 'zapped files' list 1997-06-22 11:06:30 +00:00
peter
e00aed2084 merge conflicts 1997-06-22 10:59:24 +00:00
peter
571cfa0005 Import cvs-1.9.10 1997-06-22 10:55:49 +00:00
peter
891d25f8be This commit was generated by cvs2svn to compensate for changes in r26801,
which included commits to RCS files with non-trunk default branches.
1997-06-22 10:55:49 +00:00
peter
33ddef35e6 If the localid is set, don't forget to expand it... 1997-06-02 07:06:35 +00:00
peter
8f0fa46a51 One of the new cvs's features is to be able to run a checker on the
log messages after they've been entered.  This is more flexible than
using the editinfo script since it works for all log message types
and doesn't have to deal with trying to run the editor for the user.

The problem is that the verifymsg script can't modify the file like
editinfo can, which makes it useless for cleaning up the message (as is
needed for remote commits etc).  This change causes the verifymsg handler
to read back the message after the verify script has run and returned an
"OK" exit code.
1997-05-26 05:15:29 +00:00
peter
8e5453d590 forgot to mention that the vms source was pruned 1997-05-23 14:55:31 +00:00
peter
7598196419 Merge conflicts from 970523 import 1997-05-23 14:52:34 +00:00
peter
fc35590c6d Import a slightly newer version of 1.9.9 (as at 970523) that has fixed a
few more memory leaks and cleaned up getopt usage.  These were done shortly
after the last one I imported.  Very little has changed other than that.
(except for some doc updates)

Obtained from: cyclic.com
1997-05-23 14:48:05 +00:00
peter
5ca2cb3c69 This commit was generated by cvs2svn to compensate for changes in r26065,
which included commits to RCS files with non-trunk default branches.
1997-05-23 14:48:05 +00:00
peter
5b1c235916 Attempt to work around the problem Bruce reported with 'cvs diff -rHEAD'
complaining about long-deleted files having been deleted and that there
is no diff available.
1997-05-21 16:21:08 +00:00
peter
344c014087 Implement a -R option to cvs to turn on read-only repository mode.
When using a local repository that is only written to by CVSup - which
I assume doesn't do the cvs locking protocol - this option might be a
speedup since cvs will not create lock files.
1997-05-17 14:20:33 +00:00
peter
a3f9754a77 use xstrdup rather than strdup in case of malloc failure. 1997-05-17 14:14:47 +00:00
peter
9d520c8a55 Catch write-lock attempts immediately if running in read-only mode rather
than depending on getting a write fail.
1997-05-17 14:04:18 +00:00
peter
2b6097ead3 Pull in OpenBSD's support for checking out from a read-only repository,
such as within an anoncvs server, or from a CDROM repository.
Cyclic (the cvs maintainers) do not like this approach and have an
alternative read-only system, but that requires a read/write repository to
work (which rules out CDROM).

Obtained from: OpenBSD
1997-05-17 14:01:25 +00:00
peter
4ad318b323 Complete the support for $FreeBSD$. Add an option "tagexpand=" which
controls the RCSINCEXC encironment variable for our rcs version, and
also convert the rest of the checkout enhancements from rcs into cvs's
fast checkout code.  (yes, cvs doesn't call 'co' anymore)
We now have fine grained individual keyword expansion control and can
set the keyword to anything the user wants.

Also, a new keyword, $CVSHeader$ comes in from rcs, it's like $Header$
except that it shows the pathname relative to the cvsroot.  eg:
  $FreeBSD: src/bin/ls/ls.c,v 1.10.2.14 1997/05/17 13:15:45 peter Exp $
	    ^^^^^^^^^^^^^^^^^
The idea for this comes from $XFree86$ which expands like $CVSHeader$.
The "local id" string can be set to expand like Id, Header or CVSHeader.
(Matching support for this is apparently happening in cvsup right now)
1997-05-17 13:38:45 +00:00
peter
12c4ced9fa Initial round of support for a local $Id$ keyword in cvs, eg: $FreeBSD$.
This is not complete yet in that it doesn't drive our version of RCS
completely, but it does work fine when you do the appropriate magic.

Obtained from: OpenBSD source tree
1997-05-16 00:12:16 +00:00
peter
174a377378 Update 1997-05-15 23:10:27 +00:00
peter
baaed17f86 Delete extranious $Id$ - it's not expanded on -ko files 1997-05-15 22:56:29 +00:00