# HG changeset patch # User Mads Kiilerich <madski@unity3d.com> # Date 2014-10-01 01:40:51 # Node ID 5220c12c43fda739990eb65be617b127aaa7719f # Parent 44dce874de97a2b3d47cc8be97432cbfcffddbe1 changectx: skip all invalid merge.preferancestor values A better fix for 17011b36aac7 that will ignore other kinds of "invalid" revisions. diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -558,9 +558,10 @@ class changectx(basectx): anc = cahs[0] else: for r in self._repo.ui.configlist('merge', 'preferancestor'): - if r == '*': + try: + ctx = changectx(self._repo, r) + except error.RepoLookupError: continue - ctx = changectx(self._repo, r) anc = ctx.node() if anc in cahs: break diff --git a/tests/test-merge-criss-cross.t b/tests/test-merge-criss-cross.t --- a/tests/test-merge-criss-cross.t +++ b/tests/test-merge-criss-cross.t @@ -349,7 +349,7 @@ Verify that the old context ancestor wor 2 $ hg log -r 'ancestor(head())' --config merge.preferancestor=3 -T '{rev}\n' 1 - $ hg log -r 'ancestor(head())' --config merge.preferancestor='*' -T '{rev}\n' - 1 + $ hg log -r 'ancestor(head())' --config merge.preferancestor='1337 * - 2' -T '{rev}\n' + 2 $ cd ..