Subject: Re: CVS REPOSITORY IS BROKEN (Re: cvs checkout with tag)
To: FUKAUMI Naoki <naoki@fukaumi.org>
From: Alan Barrett <apb@cequrux.com>
List: current-users
Date: 01/29/2002 13:51:17
On Tue, 29 Jan 2002, FUKAUMI Naoki wrote:
> -r HEAD is NOT point 'main line'?
> -D DATE is NOT point 'main line of specific date'?

The documentation is quite vague about what they really mean, but my
experience leads me to believe that they mean something like this:

	if (file exists in main line on the specified date) then
		get version from main line on specified date;
	else if (file was deleted fron main line before specified date,
		  AND a branch exists that forked from the main line just
			before the file was deleted from the main line,
		  AND maybe some extra conditions) then
		get version from the branch on the specified date;
	else
		delete file from checked out tree;

I believe that you want something more like this:

	if (file exists in main line on the specified date) then
		get version from main line on specified date;
	else
		delete file from checked out tree;

I performed a few more experiments, and it appears that these
commands both do the "wrong" thing:

	cvs checkout -r HEAD basesrc/usr.sbin/sendmail
	cvs checkout -D yesterday basesrc/usr.sbin/sendmail

but this command seems to do the "right" thing:
		
	cvs checkout -r HEAD -D yesterday basesrc/usr.sbin/sendmail

--apb (Alan Barrett)