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>