From owner-freebsd-hackers Thu Dec 26 14:17:44 1996 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id OAA12222 for hackers-outgoing; Thu, 26 Dec 1996 14:17:44 -0800 (PST) Received: from austin.polstra.com (austin.polstra.com [206.213.73.10]) by freefall.freebsd.org (8.8.4/8.8.4) with ESMTP id OAA12216 for ; Thu, 26 Dec 1996 14:17:41 -0800 (PST) Received: (from jdp@localhost) by austin.polstra.com (8.8.3/8.8.3) id OAA12528; Thu, 26 Dec 1996 14:17:30 -0800 (PST) To: freebsd-hackers@freebsd.org Path: not-for-mail From: jdp@polstra.com (John Polstra) Newsgroups: polstra.freebsd.hackers Subject: Re: cvsup change Date: 26 Dec 1996 14:17:29 -0800 Organization: Polstra & Co., Seattle, WA Lines: 68 Distribution: local Message-ID: <59uthp$c7d@austin.polstra.com> References: <199612251512.HAA00997@squirrel.tgsoft.com> Summary: Not your fault Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk In article <199612251512.HAA00997@squirrel.tgsoft.com>, mark thompson 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