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>
