ancestor: silence multiple ancestor warning outside of merge (
issue4234)
The current situation is a bit of a layering violation as
merge-specific knowledge is pushed down to lower layers and leaks
merge assumptions into other code paths.
Here, we simply silence the warning with a hack. Both the warning and
the hack will probably go away in the near future when bid merge is
made the default.
--- a/mercurial/context.py Fri Apr 25 13:44:51 2014 -0700
+++ b/mercurial/context.py Wed Apr 30 14:19:01 2014 -0500
@@ -394,7 +394,7 @@
return filectx(self._repo, path, fileid=fileid,
changectx=self, filelog=filelog)
- def ancestor(self, c2):
+ def ancestor(self, c2, warn=False):
"""
return the "best" ancestor context of self and c2
"""
@@ -415,12 +415,13 @@
break
else:
anc = self._repo.changelog.ancestor(self._node, n2)
- self._repo.ui.status(
- (_("note: using %s as ancestor of %s and %s\n") %
- (short(anc), short(self._node), short(n2))) +
- ''.join(_(" alternatively, use --config "
- "merge.preferancestor=%s\n") %
- short(n) for n in sorted(cahs) if n != anc))
+ if warn:
+ self._repo.ui.status(
+ (_("note: using %s as ancestor of %s and %s\n") %
+ (short(anc), short(self._node), short(n2))) +
+ ''.join(_(" alternatively, use --config "
+ "merge.preferancestor=%s\n") %
+ short(n) for n in sorted(cahs) if n != anc))
return changectx(self._repo, anc)
def descendant(self, other):
--- a/mercurial/merge.py Fri Apr 25 13:44:51 2014 -0700
+++ b/mercurial/merge.py Wed Apr 30 14:19:01 2014 -0500
@@ -992,7 +992,7 @@
cahs = repo.changelog.commonancestorsheads(p1.node(), p2.node())
pas = [repo[anc] for anc in (sorted(cahs) or [nullid])]
else:
- pas = [p1.ancestor(p2)]
+ pas = [p1.ancestor(p2, warn=True)]
fp1, fp2, xp1, xp2 = p1.node(), p2.node(), str(p1), str(p2)