To merge or not to merge?

John Arbash Meinel john at arbash-meinel.com
Fri Jun 23 02:16:29 BST 2006


Michael Ellerman wrote:
> On 6/23/06, John Arbash Meinel <john at arbash-meinel.com> wrote:
>> There is something about the current bzrk that doesn't sit great with
>> me. Maybe it is just that you can't collapse a branch. Maybe something
>> about how all the changes tend to show up as a straight line of 20+
>> commits for a moderate-sized feature branch.
>>
>> I don't really know how to do it any better, though. I think the general
>> problem is that it is really an N dimensional branching structure that
>> we are trying to display in 2D.
>>
>> I'm curious what it would look like if instead of showing all of the
>> tails, we just show the tail for the last merge.
>>
>> So if I branched bzr.dev at revno 1500, did 50 commits, merged it after
>> bzr.dev had grown to revno 1520, and then did 2 more commits and got it
>> integrated, we would show a line from 1520->my1550, and then my
>> 1552->1521. and just a long tail hanging off of my 1550. Perhaps
>> defaulted to be collapsed.
> 
> You'll have to draw me a picture :)
> 
> Sounds interesting. I think having bzrk rock hard is really important
> for bzr to be the best it can be.
> 
> cheers
> 

Right now we do:

.
|\
| .
| .
| . <- there is another merge here
| .
| .
| .
| .
. \
|\ \
| . |
|/ /
. /
./
.
.

We hide the second merge, because it isn't really interesting from the
mainline is left perspective, and it simplifies the graph a lot.
What I was thinking about is to eliminate the tail, and do something like:

.
|\
| .
| .
| .
|/.
| .
| .
| .
.
|\
| .
|/
.
.
.
.

And possibly even collapsing the tail with something more like:
.
|\
| .
| .
| .
|/v
.
|\
| .
|/
.
.
.
.

Where the 'v' is the collapsed tail of the merged in stuff. It is fairly
common for us to merge bzr.dev just before we merge (or at least very
close to). Because we have to watch out for conflicts.

By collapsing the tails, (but having the option to expand them) you can
see a lot more of what is going on.

Another possibility would be to collapse everything off the mainline,
until you started expanding them. Something like:
.
|\
.
|\
.
.
.
.

So you see that something was merged, and can do something to get more
information. But the default view is just to see what the mainline is doing.

John
=:->

-------------- 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/20060622/0502d13e/attachment.pgp 


More information about the bazaar mailing list