Wed Jan 7 09:56:51 CST 2009
iterates over ancestors backwards on both Working Copy and
the other branch to be merged until the ancestors have the
same depth in the decreasing order of depth to the root. Once
the depth is same it takes the list of ancestors in the Working
Copy with that particular depth one by one and checks to
see if that Ancestor is also an ancestor of the other branch.
So for the example given by Matt, let me try to explain
what I understood (please correct me if I am wrong)
a(r0) - b(1) - c(4) (default branch)
d(2) - e(3) - f(5) (say branch new)
If I now want to merge c and f say, which have 2 common
ancestors b and e which are not the ancestors of one
another, I will have e as the common ancestor of c and f
with highest depth to the root (i.e -2), so e will be chosen
as the common ancestor for the 3-way merge over e, since
Hope this is correct?
Same is the case if I am on branch "new" too. e(3) will be
> Can we shallow clone
> such that the one Mercurial would normally choose is not present?
More information about the Mercurial-devel