Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 06 May 1998 19:29:49 -0500
From:      David Kelly <dkelly@hiwaay.net>
To:        Eivind Eklund <eivind@yes.no>
Cc:        hackers@FreeBSD.ORG
Subject:   Re: cvs woes 
Message-ID:  <199805070029.TAA19128@nospam.hiwaay.net>
In-Reply-To: Message from Eivind Eklund <eivind@yes.no>  of "Sat, 02 May 1998 16:16:36 %2B0200." <19980502161636.40296@follo.net> 

next in thread | previous in thread | raw e-mail | index | archive | help
Eivind Eklund writes:
> On Fri, May 01, 1998 at 08:52:38PM -0500, David Kelly wrote:
> [... of directories CVS don't know about ...]
> > Have attempted removing the questioned directories. No more complaints 
> > from cvs, but the directories are not restored after an update.
> > 
> > I use cvsup to update my /home/ncvs.
> > 
> > Short of "rm -rf /usr/{ports,src}" and starting over, how can I correct
> > this mess? (/usr/src is in the same state)
> 
> The above is a result of CVS being 'somewhat less than graceful' about
> not having enough memory.  When adding directories, it should really
> update CVS/Entries in a two-phase commit before actually extracting
> the directory.  This would let it fail gracefully (ie, a new 'cvs
> update' would bring it to the correct state).

How much memory does it take? I only have 64M and another 128M of swap.

> Now, since it doesn't, you're more or less screwed.  What you can do:
> 
> Blow the unknown directories away and do a 'cvs update' (simplest).
> This should get you up to date correctly, unless you've got patches in
> the unknown directories.

That's the strangest thing. "cvs update" was not restoring the deleted 
directories.

> The below will probably get you up to date correctly no matter what,
> but involves 'more magic' and is only slightly tested (ie, I looked
> the output over without the shell pipe, but I didn't actually _run_ it
> :-)
> 
> cvs update 2> /dev/null | perl -ne 'if (/^\? (.*)\/(.*)/ && -d "$1/CVS") {pri
> nt "(cd $1 && echo \"D/$2////\" >> CVS/Entries)\n";} elsif(/^\? (.*)/ && -d "
> $1/CVS") {print "echo \"D/$1////\" >> CVS/Entries\n"};' | csh
> 
> This run through the output of cvs, checks for any unknown directories
> which has a CVS subdir, and add those to CVS/Entries of the parent
> directory.

Thanks for the valiant effort. Ran the above with apparently no 
problems but it didn't fix the problems.  :-(

> You will have to run it several times if the subdirs of the newly
> added subdirs are missing their CVS/Entries entries, and it won't
> solve any piece where the CVS subdir of a subdir hasn't been created
> at all.

The problem directories all appeared to be the "bottom" directory 
where ever.

Have since concluded that I've had all the fun I can stand and learned 
as much as I care to right now about cvs. I didn't have any custom 
stuff in either place (other than /usr/ports/distfiles and my kernel 
config file). So after moving those things to a safe place I removed
/usr/src and /usr/ports and have started over with a fresh checkout.

As I mentioned earlier, not sure how it happened other than I've had 
several system freezes when "cvs -q update" was running, Netscape 3.01 
was open, and pppd had a connection. Four or five times, those three 
things were required to freeze.

So I'm tempting fate again. Haven't had a freeze since replacing a very 
old /etc/login.conf. Netscape, pppd, and cvs are running at this very 
moment. The freeze never occurs until cvs is very near the end of its 
tasks.

--
David Kelly N4HHE, dkelly@nospam.hiwaay.net
=====================================================================
The human mind ordinarily operates at only ten percent of its
capacity -- the rest is overhead for the operating system.



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199805070029.TAA19128>