D3975: mergetool: warn if ui.merge points to nonexistent tool
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Tue Jul 24 06:38:06 UTC 2018
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
This adds a warning when ui.merge is configured but points to an
executable that doesn't exist. It gets printed once per fail, but that
seems to be how our other warnings about merge tools are reported.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D3975
AFFECTED FILES
mercurial/filemerge.py
tests/test-merge-tools.t
CHANGE DETAILS
diff --git a/tests/test-merge-tools.t b/tests/test-merge-tools.t
--- a/tests/test-merge-tools.t
+++ b/tests/test-merge-tools.t
@@ -1748,7 +1748,9 @@
missingbinary.executable=doesnotexist
# hg update -C 1
$ hg merge -y -r 2 --config ui.merge=missingbinary
+ couldn't find merge tool missingbinary (for pattern f)
merging f
+ couldn't find merge tool missingbinary (for pattern f)
revision 1
space
revision 0
diff --git a/mercurial/filemerge.py b/mercurial/filemerge.py
--- a/mercurial/filemerge.py
+++ b/mercurial/filemerge.py
@@ -208,9 +208,10 @@
if uimerge:
# external tools defined in uimerge won't be able to handle
# change/delete conflicts
- if uimerge not in names and not changedelete:
- return (uimerge, uimerge)
- tools.insert(0, (None, uimerge)) # highest priority
+ if check(uimerge, path, symlink, binary, changedelete):
+ if uimerge not in names and not changedelete:
+ return (uimerge, uimerge)
+ tools.insert(0, (None, uimerge)) # highest priority
tools.append((None, "hgmerge")) # the old default, if found
for p, t in tools:
if check(t, None, symlink, binary, changedelete):
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list