From owner-freebsd-hackers Thu Sep 25 20:52:51 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id UAA04560 for hackers-outgoing; Thu, 25 Sep 1997 20:52:51 -0700 (PDT) Received: from usr05.primenet.com (tlambert@usr05.primenet.com [206.165.6.205]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id UAA04555 for ; Thu, 25 Sep 1997 20:52:49 -0700 (PDT) Received: (from tlambert@localhost) by usr05.primenet.com (8.8.5/8.8.5) id UAA29332; Thu, 25 Sep 1997 20:52:20 -0700 (MST) From: Terry Lambert Message-Id: <199709260352.UAA29332@usr05.primenet.com> Subject: Re: How do I check out a snapshot? To: mike@smith.net.au (Mike Smith) Date: Fri, 26 Sep 1997 03:52:20 +0000 (GMT) Cc: tlambert@primenet.com, mike@smith.net.au, grog@lemis.com, hackers@FreeBSD.ORG In-Reply-To: <199709260329.MAA00428@word.smith.net.au> from "Mike Smith" at Sep 26, 97 12:59:27 pm X-Mailer: ELM [version 2.4 PL23] Content-Type: text Sender: owner-freebsd-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > > > You don't. Due to the nature of the distributed CVS repository, there > > > is a window where even the exact time of checkout for the snapshot > > > build might leave you out of sync. The only way around this would be > > > for the snap to be built from a tree directly checked out from the > > > master repository. Jordan does this for the for-CDROM versions, I > > > think. > > > > This is not due to the nature of the CVS repository; this is due to the > > way it is being used. We've had the discussion about "how to use it > > to close the window" before. Enforcing reader/writer locks by making > > the repository group writable and the locking program SGID the caller > > into the group would fix the problem, pronto. > > No, it wouldn't. Why not? If the main CVS repository can't be non-atomically updated, and the CVSup for the CVS mirrors had to acquire a reader lock to do the mirroring so they can't be non-atomically mirrored from the main tree, and the user CVSup's had to acquire a reader lock to pull from the mirrors so a local tree can't be non-atomically mirrored by the users... then there is no such thing as an out of sync CVS tree. If you are worried about keeping regionally seperate builds in sync, you just pick a snap date sufficiently far in the past that it spans the propagation delay for the mirroring between you and the master repository. > Closer would be to claim the "checkout" time for a remotely-built SNAP > matched the CVSup scan from which the remote repo was last updated, but > unfortunately there isn't any such thing. If *all* readers had to get a lock, including the CVSup for the remote repository, then there would be. You could build it into the daemon to assert a reader lock on where you are mirroring from, and build it into the client to assert a writer lock on where you are mirroring to. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.