Show More
@@ -396,7 +396,7 b' class changectx(basectx):' | |||||
396 |
|
396 | |||
397 | def ancestor(self, c2): |
|
397 | def ancestor(self, c2): | |
398 | """ |
|
398 | """ | |
399 | return the ancestor context of self and c2 |
|
399 | return the "best" ancestor context of self and c2 | |
400 | """ |
|
400 | """ | |
401 | # deal with workingctxs |
|
401 | # deal with workingctxs | |
402 | n2 = c2._node |
|
402 | n2 = c2._node | |
@@ -408,10 +408,19 b' class changectx(basectx):' | |||||
408 | elif len(cahs) == 1: |
|
408 | elif len(cahs) == 1: | |
409 | anc = cahs[0] |
|
409 | anc = cahs[0] | |
410 | else: |
|
410 | else: | |
|
411 | for r in self._repo.ui.configlist('merge', 'preferancestor'): | |||
|
412 | ctx = changectx(self._repo, r) | |||
|
413 | anc = ctx.node() | |||
|
414 | if anc in cahs: | |||
|
415 | break | |||
|
416 | else: | |||
411 | anc = self._repo.changelog.ancestor(self._node, n2) |
|
417 | anc = self._repo.changelog.ancestor(self._node, n2) | |
412 | self._repo.ui.status( |
|
418 | self._repo.ui.status( | |
413 | (_("note: using %s as ancestor of %s and %s\n") % |
|
419 | (_("note: using %s as ancestor of %s and %s\n") % | |
414 |
(short(anc), short(self._node), short(n2))) |
|
420 | (short(anc), short(self._node), short(n2))) + | |
|
421 | ''.join(_(" alternatively, use --config " | |||
|
422 | "merge.preferancestor=%s\n") % | |||
|
423 | short(n) for n in sorted(cahs) if n != anc)) | |||
415 | return changectx(self._repo, anc) |
|
424 | return changectx(self._repo, anc) | |
416 |
|
425 | |||
417 | def descendant(self, other): |
|
426 | def descendant(self, other): |
@@ -25,6 +25,7 b' Criss cross merging' | |||||
25 |
|
25 | |||
26 | $ hg up -r3 |
|
26 | $ hg up -r3 | |
27 | note: using 0f6b37dbe527 as ancestor of adfe50279922 and cf89f02107e5 |
|
27 | note: using 0f6b37dbe527 as ancestor of adfe50279922 and cf89f02107e5 | |
|
28 | alternatively, use --config merge.preferancestor=40663881a6dd | |||
28 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
29 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
29 | $ echo '6 second change' > f2 |
|
30 | $ echo '6 second change' > f2 | |
30 | $ hg ci -m '6 second change f2' |
|
31 | $ hg ci -m '6 second change f2' | |
@@ -75,6 +76,7 b' Criss cross merging' | |||||
75 |
|
76 | |||
76 | $ hg merge -v --debug --tool internal:dump 5 |
|
77 | $ hg merge -v --debug --tool internal:dump 5 | |
77 | note: using 0f6b37dbe527 as ancestor of 3b08d01b0ab5 and adfe50279922 |
|
78 | note: using 0f6b37dbe527 as ancestor of 3b08d01b0ab5 and adfe50279922 | |
|
79 | alternatively, use --config merge.preferancestor=40663881a6dd | |||
78 | searching for copies back to rev 3 |
|
80 | searching for copies back to rev 3 | |
79 | resolving manifests |
|
81 | resolving manifests | |
80 | branchmerge: True, force: False, partial: False |
|
82 | branchmerge: True, force: False, partial: False | |
@@ -111,4 +113,14 b' Criss cross merging' | |||||
111 | ==> f2.other <== |
|
113 | ==> f2.other <== | |
112 | 2 first change |
|
114 | 2 first change | |
113 |
|
115 | |||
|
116 | $ hg up -qC . | |||
|
117 | $ hg merge -v --tool internal:dump 5 --config merge.preferancestor="null 40663881 3b08d" | |||
|
118 | note: using 40663881a6dd as ancestor of 3b08d01b0ab5 and adfe50279922 | |||
|
119 | alternatively, use --config merge.preferancestor=0f6b37dbe527 | |||
|
120 | resolving manifests | |||
|
121 | merging f1 | |||
|
122 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved | |||
|
123 | use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon | |||
|
124 | [1] | |||
|
125 | ||||
114 | $ cd .. |
|
126 | $ cd .. |
General Comments 0
You need to be logged in to leave comments.
Login now