Updated tags support

Matthew D. Fuller fullermd at over-yonder.net
Wed Dec 28 15:32:14 GMT 2005


On Tue, Dec 27, 2005 at 06:32:10PM -0500 I heard the voice of
Aaron Bentley, and lo! it spake thus:
> John A Meinel wrote:
> > In the short term, yes "in the Branch" is correct. I would like to
> > open it up for discussion whether tags are branch local, or could
> > be considered shared between branches.
> 
> Hmm.  Maybe we need to be very specific here, because there are two
> possible meanings of 'shared'.
> 
> 1. The current set of tags is shared among all branches

I would tend toward this, as far as possible.  I see several scenarios
to be considered here, and how I'd like them to be handled.  [Note
that when I use the term 'branch' here, I'm mostly using it as a
conceptual term a fork off a tree, rather than as a noun describing a
particular directory or object]

1) Mirroring[0].  I keep a local `bzr pull` mirror of bzr.dev.
   Releases are cut from that, and tagged RELEASE_6_0, RELEASE_6_2,
   etc.  I should have those tags in my mirror.

2) Branching[0].  I branch off that bzr.dev tree to do my own hacking
   of some sort or another.  I should have those tags that refer to
   revisions prior to that divergance point, certainly.  For tags
   referring to revisions after the divergance point, I think I should
   have them IFF the tree state they refer to exists precisely in my
   branch.  However, if I'm merging in from the upstream tree, and
   thus my revisions include as well some local changes, the tag
   shouldn't point at a revision that includes those local change;
   only if it can refer to exactly the same tree state should it exist
   in my tree.

3) Collisions.  Of course, there can be naming collisions between
   upstream tags and my local tags.  In theory, the only way this
   should happen would be if I create a tag, and then later try to
   merge from an upstream which also has a tag of the same name.  (The
   reverse case would just say "Hey, that name is already used," and
   not let me create the tag).  This probably needs user intervention
   to either ignore that upstream tag, or call it something else
   (perhaps _upstream_<upstream branch nick>_<upstream tag name> or
   something by default).




[0] I'm aware that implementation-wise, these words are meaningless as
    they just refer to the same thing.  But they're valid as terms for
    particular use cases, in terms of the way a person would use the
    tool.  The behavior stated is likewise just particular cases of
    the same behavior, so...



-- 
Matthew Fuller     (MF4839)   |  fullermd at over-yonder.net
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/
           On the Internet, nobody can hear you scream.




More information about the bazaar mailing list