From owner-cvs-all Thu Apr 2 07:45:25 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id HAA01193 for cvs-all-outgoing; Thu, 2 Apr 1998 07:45:25 -0800 (PST) (envelope-from owner-cvs-all@FreeBSD.ORG) Received: from austin.polstra.com (austin.polstra.com [206.213.73.10]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id HAA01183 for ; Thu, 2 Apr 1998 07:45:23 -0800 (PST) (envelope-from jdp@austin.polstra.com) Received: from austin.polstra.com (jdp@localhost) by austin.polstra.com (8.8.8/8.8.8) with ESMTP id HAA04034; Thu, 2 Apr 1998 07:45:17 -0800 (PST) (envelope-from jdp) Message-Id: <199804021545.HAA04034@austin.polstra.com> To: nik@iii.co.uk cc: obrien@NUXI.com, cvs-committers@FreeBSD.ORG Subject: Re: cvs commit: distrib/cvsup/sup README distrib/cvsup/sup/doc-all releases list.cvs.en distrib/cvsup/sup/www releases list.cvs.en list.cvs.text In-reply-to: Your message of "Thu, 02 Apr 1998 15:05:18 +0100." <19980402150518.05921@iii.co.uk> Date: Thu, 02 Apr 1998 07:45:16 -0800 From: John Polstra Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk > doc-all > doc-base > doc-en > doc-en-faq > doc-en-handbook > doc-ja > doc-ja-faq > doc-ja-handbook > > and so on. > > Is it possible to use a scheme like this to create meta-collections > that don't have a 1:1 mapping to the directory structure? For example, a > doc-handbook collection that consisted of doc-en-handbook and > doc-ja-handbook? Yes, it is possible. The content of a collection is more or less arbitrary. But logistically, it could be a problem. It is bad if a user tries to get two collections that overlap in some way. For example, if a user asked for doc-handbook and doc-en, then both collections would try to update the doc/en/handbook tree. That tends to lead to all manner of strange problems. CVSup processes the collections independently, so it doesn't know that they overlap. And because of the extensive pipelining, the "scanning" part of the program might be examining the files covered by doc-handbook at the same time that the "updating" part was updating the doc-en files underfoot. On the client side, CVSup expects you to keep your hands off the files while it is updating them. (On the server side, it can tolerate just about anything. That's why mirrors work.) We could document this and warn about it, but experience has shown that to be fairly ineffective. Trust me. I hear a lot more about it than you do. :-) For example, the "stable-supfile" in /usr/share/examples/cvsup contains this warning: ############################################################################### # # DANGER! WARNING! LOOK OUT! VORSICHT! # # If you add any of the ports collections to this file, be sure to # specify them like this: # # ports-all tag=. # # If you leave out the "tag=." portion, CVSup will delete all of # the files in your ports tree. That is because "RELENG_2_1_0" and # "RELENG_2_2" are not valid tags for the ports portion of the CVS # repository. # ############################################################################### And you wouldn't believe the number of people who have blindly added "ports-all" to the file, without the tag part, and promptly gotten their entire ports tree removed. Another possibility would be for CVSup to check for overlap between collections at startup time. But that's pretty hard. The contents of collections are specified as glob-style patterns, with both inclusion patterns and exclusion patterns. Given two sets of such patterns, it's not at all easy to determine whether they are going to overlap. For one thing, it depends on the names of the files that are actually present. A third possibility would be to specify somehow in the server's administrative files which collections conflict with each other. That might be the best bet. -- John Polstra jdp@polstra.com John D. Polstra & Co., Inc. Seattle, Washington USA "Self-knowledge is always bad news." -- John Barth To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message