filemerge: more backwards compatible behavior for ui.merge
authorSteve Borho <steve@borho.org>
Wed, 06 Feb 2008 20:44:25 -0600
changeset 6076 0ee885fea464
parent 6075 63e0e57ab157
child 6077 fb259a3572e9
filemerge: more backwards compatible behavior for ui.merge if ui.merge matches a tool in [merge-tools], it is used as the default tool selection but may be rejected by binary or gui or other checks. If ui.merge does not match a merge tool, it is used unconditionally.
mercurial/filemerge.py
--- a/mercurial/filemerge.py	Wed Feb 06 20:32:06 2008 -0600
+++ b/mercurial/filemerge.py	Wed Feb 06 20:44:25 2008 -0600
@@ -60,10 +60,14 @@
         t = k.split('.')[0]
         if t not in tools:
             tools[t] = int(_toolstr(ui, t, "priority", "0"))
+    names = tools.keys()
     tools = [(-p,t) for t,p in tools.items()]
     tools.sort()
-    if ui.config("ui", "merge"):
-        tools.insert(0, (None, ui.config("ui", "merge"))) # highest priority
+    uimerge = ui.config("ui", "merge")
+    if uimerge:
+        if uimerge not in names:
+            return (uimerge, uimerge)
+        tools.insert(0, (None, uimerge)) # highest priority
     tools.append((None, "hgmerge")) # the old default, if found
     for p,t in tools:
         toolpath = _findtool(ui, t)