Subject: Re: CVS REPOSITORY IS BROKEN (Re: cvs checkout with tag)
To: None <current-users@netbsd.org>
From: Thor Lancelot Simon <tls@rek.tjls.com>
List: current-users
Date: 01/29/2002 14:05:18
On Tue, Jan 29, 2002 at 06:23:22PM +0200, Alan Barrett wrote:
> On Tue, 29 Jan 2002, Perry E. Metzger wrote:
> > I am sorry, Fukaumi-san. I still do not understand. :(
> 
> Let me try to explain, since I think that I know what FUKAUMI Naoki
> wants to do, and I am a native English speaker.
> 
> We want to check out a complete copy of (some subset of) the tree as
> of some date in the past.  We do not know any cvs commands that will
> reliably do that while paying strict attention to which files existed
> or did not exist on the trunk on particular dates.

You can't do that because of the way we move files in the repository
(well, more precisely, the way we *used to* move files in the repository).
You can ask for any particular file as of any particular date, or any
particular tag over the whole tree or any part of the tree, but you can't
ask for the tree as of a particular date.

Here's why:

In our old procedure, when we moved a directory from one part of the
repository to the other, we copied the repository directory to the
new location, stripped out the tags from the "old" revisions from
those revisions in the ,v files in the "new" location, and cvs rm'ed
the files in the old location.

This procedure has some significant advantages; for example, you can
get a *full* history, or diffs, of a file that's been moved, without 
having to check out revisions on either side of a rm/add in two 
different locations and diff them by hand.  Also, checkouts by symbolic
tag still work perfectly.  The only thing it breaks is date-based
checkouts, which basically no developer ever used (we polled the 
developers about this on multiple occasions).  Remember, the NetBSD
CVS repository existed *long* before anyone, anywhere, did anonymous
CVS for any project.

There's another reason date-based checkouts don't work reliably: we
inconsistently imported some sources with the current date, and other
sources with the dates the vendors last modified the files, so dates
are all hosed on files where the initial revision is on a vendor
branch.

It is not clear to me whether your problem stems from one of these
two causes or from some other cause but unfortunately you shouldn't 
expect date-based checkouts of the NetBSD repository to work.

Thor