[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Official sources vs. RCVS
From: |
Cameron, Steve |
Subject: |
RE: Official sources vs. RCVS |
Date: |
Wed, 31 Jan 2001 09:06:22 -0600 |
Derek Price wrote:
> "Cameron, Steve" wrote:
>
> > I wrote:
> > [...]
> > > Derek Price wrote:
> > >
> > > Okay, it applied and compiled fine, but I've already found a
> bug:
> > > if
> > > the executable can find the tag in val-tags, it won't provide an
> > > error
> > > when the specified tag doesn't exist in a file.In the above
> case, it
>
> [. . .]
>
> > with either the patched or unpatched cvs 1-11, so
> > I think it's working right after all, or at least just
> as
> > right as 1.11 does. Or am I still missing something?.
>
> Hmm. Yep. Not sure what I was thinking when I wrote the above, but this
> behavior does become confusing in the case when the non-existant tag is
> the
> compound of a static tag and ".origin". I think it would be easy for a
> user to
> expect that statictag.origin would return the origin of the branch that
> the
> static tag is on (it doesn't - it's returnning empty...).
[smc] That isn't possible, I don't think (famous last words...).
Here's why: the same revision marked by the static tag might be
present on multiple branches, due to CVS's optimization of not
creating
a new revision for each file when a branch is created.. In the
general
case, it's not possible to know what branch you mean if you specify,
e.g. "static_tag.origin", as static_tag will not always uniquely
identify
a branch.
E.g. You have branches "foo" and "bar"
cvs tag -b -r 1.1 foo foo.c
Some more revisions are added to "foo" branch, then "bar" branch is
created:
cvs tag -b -r foo bar foo.c
cvs tag -r bar static_tag foo.c
Now the revision which static_tag points to is present on both
branches
"foo" and "bar".
Also, it's possible (though one might say pathological) to have the
same
tag appear in one file as a static tag, and in another as a branch
tag. So,
upon encountering a static tag x, when 'x.origin' is specified, it
is safe
to assume that *that file* is not on branch x. It is not safe to
assume
that there is no branch called x anywhere in the repository, if we
want to
handle this pathological case "correctly", as I see it. (Though I
don't think I
have a sanity.sh test case covering that one, and my way of seeing
things
might be an uncommon one. :-)
[...]
-- steve
>
- RE: Official sources vs. RCVS, (continued)
- RE: Official sources vs. RCVS, Cameron, Steve, 2001/01/30
- RE: Official sources vs. RCVS, Cameron, Steve, 2001/01/30
- RE: Official sources vs. RCVS, Cameron, Steve, 2001/01/30
- RE: Official sources vs. RCVS, J. Cone, 2001/01/31
- RE: Official sources vs. RCVS,
Cameron, Steve <=
- RE: Official sources vs. RCVS, Cameron, Steve, 2001/01/31