tags vs branches in a repo

Robert Collins robertc at robertcollins.net
Fri May 12 02:11:48 BST 2006


On Thu, 2006-05-11 at 15:26 +1000, Martin Pool wrote:
> Please poke this straw man:
> 
> We now have repositories which can contain branches; branches are just
> directories containing a small number of control files.  It's cheap and
> (at least relatively) fast to pull or merge between two branches in a
> repository.  You can, with a plugin, list all the branches.
> 
> There are proposals for tags but they are either a bit limited
> (unversioned tags) or have not quite the right semantics (tags created
> by new versions) or introduce substantially more complexity (meta-branch 
> revisions).
> 
> How about instead doing something similar to arch and svn by just making
> a practice of using branches within a repository as tags.  To create or
> update a tag you can pull, pull --overwrite, or merge onto it[*].  This
> makes tags versioned, but without introducing a new time dimension.  And
> we don't have to do a new feature, we can just improve the one we
> already have.
> 
> [*] (Which suggests we should have a merge --overwrite too, which overwrites
> the tree with the merge source.)
> 
> I can think of some drawbacks, which I'll send in a separate post; I'll
> just float this for now.

Well, I think the following are the key downsides:
 * It makes tags 'cheap' or 'expensive' depending on how they are
managed. This is unintuitive.
 * It makes 'cheap' tags depend on knowing about and using repositories.
I think the *best* thing about our repositories is that no other feature
depends on them at the moment.
 * It collapses two quite different concepts 'line of development' and
'important revision' into one - which makes it harder to talk sensibly
about them, now that they are confounded.

Its important to note that in the Arch community, using a branch to
record tags was an optional approach. The tags for tla itself were
maintained as 'configs' - a record of many branches at a single point in
time - stored in a 'dists' branch which maintained many such meta-data
files. Our nested-tree proposal will do that in a much nicer, integrated
fashion, and is not incompatible with tags as branches or tags as tags.

+1 from me on having the tools to be able to choose to do tags as
branches.
-1 from me on documenting that as 'how to do tags' and/or making it our
best practice.

Rob
-- 
GPG key available at: <http://www.robertcollins.net/keys.txt>.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060512/7e61f5cb/attachment.pgp 


More information about the bazaar mailing list