I wrote:
> Chris Deever wrote:
>
> > Is there a way to check out a branch such that CVS retrieves the branch
> as
> > it was before any new changes were committed to it?
[...]
> I have a patch to CVS that might help do what you want.
>
> It's at http://www.geocities.com/dotslashstar/branch_patch.html
>
[...]
> There might be one hitch though, I can't remember for sure.
> (I have to try this tonight to find out for sure).
>
> The patch works by trying to find the first revision of each file on the
> branch.
> So if a branch is created, then files are added to the branch, those added
> files
> are counted as being part of the "origin" of the branch regardless of
> _when_
> they were added. However, I do seem to remember that when adding files to
> a branch,
> a dead revision is added to the branch first, in which case this would
> work
> correctly, and my fears are unfounded.
[smc]
If I would read my own patch, I would see this:
+
+ Note: @samp{.trunk.origin} behaves slightly
+ differently than @same{branchtag.origin} in that, for the trunk,
there
+ is no definitely tagged starting point. Strictly speaking, one
might
+ consider the trunk to be "created" at the time the repository is
+ initialized, and thus logically @samp{.trunk.origin} should refer
to the
+ empty set. As it stands @samp{.trunk.origin} simply refers to the
earliest
+ revisions found on the trunk. This means that, as time
progresses,
+ @samp{.trunk.origin} will generally include more and more files,
as such
+ files are added to the trunk. Note, this does NOT include files
which
+ are added to the trunk via a merge, since a merge will first
create
+ a dead revision on the trunk. It does however include files which
are
+ simply "cvs added" to the trunk. For branches, since there is a
definite
+ tagged starting point for the branch, files which are "cvs added"
to the
+ branch are not referenced by @samp{branchtag.origin}.
+
which makes me beleive I already thought of this and that it does
in fact behave correctly.