Skip site navigation (1)Skip section navigation (2)
Date:      26 Dec 1996 14:17:29 -0800
From:      jdp@polstra.com (John Polstra)
To:        freebsd-hackers@freebsd.org
Subject:   Re: cvsup change
Message-ID:  <59uthp$c7d@austin.polstra.com>
References:  <199612251512.HAA00997@squirrel.tgsoft.com>

next in thread | previous in thread | raw e-mail | index | archive | help
In article <199612251512.HAA00997@squirrel.tgsoft.com>,
mark thompson  <thompson@znet.com> wrote:
> I have been paying attention (or so i thought) to the reorganizaion of
> the collections, so i added:
> 
> src-release release=cvs host=cvsup.freebsd.org hostbase=/home base=/u prefix=/usr/cvs delete old use-rel-suffix compress
> 
> to the beginning of my cvsup file. It nicely ran through that. It nicely
> ran through another collection or two, then it deleted everything in
> src/release.

It's not your fault.  As you know, I made my original announcement
about it and then followed up with a string of 3 cascading
"corrections".  Every one of them was incorrect in some way.  For
some reason I just couldn't seem to do anything right in connection
with this particular change.

In my final bogus "correction", I reported that I had run a test
and realized that no files were going to be deleted.  I did in fact
run the test, and that's what I observed.  But I must have set up
the test wrong, because later when I made the change on the real
servers, my files got deleted just like everybody else's.

Your case was even worse than most, because you happened to add
src-release at the beginning of your supfile instead of at the end
or in alphabetical order.  That made it come before src-etc, which
was the release that caused the files to be deleted.  So your files
didn't even get restored again until the next time you ran cvsup.

You must surely be wondering how it is that I couldn't better
predict the behavior of my own program!  Believe it or not, deciding
which files to add, update, or delete is one of the most complicated
parts of the entire software package.  In an effort to do what sup
would do, it has to do some rather, er, strange processing.  In
addition, this code has to handle CVS mode and checkout mode in
very different ways.  Finally, there are many complications that
can arise quite easily on a client machine:

    Missing list file ("checkouts.*")
    List file out of sync with the actual files
    Server supports newer protocol version than client
    Client supports newer protocol version than server
    Situations having to do with whether the file is in the Attic or not
    Situations involving the "refuse" files

Well, you get the picture.  I've redesigned that part of the software
twice since the original release.  It's been in good shape and very
stable for several months now, and as a result I hardly ever look
at it any more.  Sometimes I get confused about what it does under
the various conditions it can be subjected to.

It's not a very good excuse, but at least it's an explanation. :-)

> I moved the request for src-release to just before
> ports-all, and it is now very nicely bringing src/release back.

FWIW, now that the transient has passed, it should make no difference
what order your collections are in.

I'm sorry for all the hassle.  I'm going to think long and hard before
making this kind of change to the collections again.  Hmm ... maybe I
could trick Peter into doing it next time ... ;-)

John
-- 
   John Polstra                                       jdp@polstra.com
   John D. Polstra & Co., Inc.                Seattle, Washington USA
   "Self-knowledge is always bad news."                 -- John Barth



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?59uthp$c7d>