Discussion about merging

Aaron Bentley aaron.bentley at utoronto.ca
Sat Jun 4 17:46:02 BST 2005

Hash: SHA1

Nathaniel Smith wrote:
> Aaron Bentley <aaron.bentley <at> utoronto.ca> writes:
>>John A Meinel wrote:
>>| What about merges from 3rd parties. eg. tree-a merges a patch from
>>| tree-c, as does tree-b, when you merge tree-a => tree-b, you *don't*
>>| want to merge the patch from c.
>>That's a mesh-merge problem.  And as you may have noticed, mesh-merge
>>sometimes becomes mess-merge.
>>But the technique, AIUI it is:
>>1. Find the set intersection of all the merges of both trees.
>>2. Find the non-cherry-pick merge that has merged everything else in the
>>~ set intersection.
> If you use (precise) codeville-merge, these problems simply don't arise.  Just
> take the two things you want to merge and merge them; this sort of thing will
> work out.

Yes, I've been thinking we might start with star-merge, skip mesh-merge,
 and go straight to codeville merge.  On the other hand, there are other
three-way merge tools, like xml merge, wiggle, or meld, that might be
worthwile to support.

Does codeville distinguish between a merge and an update?

When I merge, I want my tree to look like OTHER, except for any changes
that I've done locally that OTHER doesn't know about.

Update is useful for maintaining diverged trees.  The idea is:  I want
any changes that have happend in OTHER since the last time I updated
from OTHER, but if OTHER has rejected* some of my changes, I do not want
that change.  In three-way merging, this is done by ensuring that BASE
is always an ancestor of OTHER.

* rejection is indicated by marking the change as merged, but not
incorporating change itself.  In effect, merging and then undoing the
change.  It prevents the change from being reintroduced the next time
you merge.

Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org


More information about the bazaar mailing list