bug-cvs
[Top][All Lists]
Advanced

[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
>  



reply via email to

[Prev in Thread] Current Thread [Next in Thread]