Recording branch points

David Allouche david at allouche.net
Wed Sep 20 22:08:01 BST 2006


Aaron Bentley wrote:
> John Arbash Meinel wrote:
>>>> There is currently a model mismatch between bzr and Launchpad: the bzr
>>>> model really only knows about revisions, while Launchpad has an explicit
>>>> branch model.
> 
> I don't think that's a good way of distinguishing the models.  bzr most
> definitely has branches.  It's just that creating a new branch
> essentially clones the original.

Did not we have this discussion already?

Maybe it is semantic nitpicking, but my position is that bzr branches
are not part of its fundamental model, they are part of higher level
models of user interface and storage implementation. The fact that a bzr
branch is essentially a revision-id plus some ancillary data (pointer to
a repository, branch nick, parent branch, etc.) supports that position.

There is a fundamental difference between that and more centralized
branch models like Subversion, GNU Arch (there, the centralized aspect
was delegated to the domain name system, but it was still present in the
core model), Launchpad and even the hard cold world of physical hard
disks. In those models, a branch can be only at one "place" at a time.

I consider this a very interesting philosophical discussion, but I guess
we can agree on the practicalities without agreeing on this.

>>>> This disconnect makes it impossible to reliably[1]
>>>> determine whether a revision seen by Launchpad in a branch genuinely
>>>> belongs to that branch or if its part of the ancestry baggage from the
>>>> parent branch.
>>>>
>>>>   [1] as usual, one can imagine heuristics based on the committer and
>>>> the branch nick, but it would be ugly and fragile.
>>> Well, to do this, we would have to start creating some sort of UUID for
>>> each branch, and have it recorded along with the rest of the revision
>>> properties. As well as being reset by certain operations.
> 
> I think that isn't required for launchpad to know what revisions are new
> to a branch.  Wouldn't a 'branch-point' marker be enough?

A branch-point marker would be plenty good enough for Launchpad.

But I would be very interested in ways to make this provide value to
simple bzr users. Because otherwise there is little incentive to stick
to practices that record meaningful branch points.

-- 
                                                            -- ddaa

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 254 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060920/834b0ba5/attachment.pgp 


More information about the bazaar mailing list