diff --git a/Documentation/config/gui.txt b/Documentation/config/gui.txt index 171be774d243fd..e63d0b46e7c421 100644 --- a/Documentation/config/gui.txt +++ b/Documentation/config/gui.txt @@ -55,3 +55,7 @@ gui.blamehistoryctx:: linkgit:gitk[1] for the selected commit, when the `Show History Context` menu item is invoked from 'git gui blame'. If this variable is set to zero, the whole history is shown. + +gui.mergeToolFromConfig:: + If true, allow to call the merge tool configured in gitconfig + in git gui directly. \ No newline at end of file diff --git a/git-gui/lib/mergetool.tcl b/git-gui/lib/mergetool.tcl index e688b016ef6c9d..fbd0889612a302 100644 --- a/git-gui/lib/mergetool.tcl +++ b/git-gui/lib/mergetool.tcl @@ -272,8 +272,15 @@ proc merge_resolve_tool2 {} { } } default { - error_popup [mc "Unsupported merge tool '%s'" $tool] - return + if {[is_config_true gui.mergetoolfromconfig]} { + set path [get_config mergetool.$tool.path] + set cmdline_config [get_config mergetool.$tool.cmd] + set cmdline_substituted [subst -nobackslashes -nocommands $cmdline_config] + set cmdline [lreplace $cmdline_substituted 0 0 $path] + } else { + error_popup [mc "Unsupported merge tool '%s'" $tool] + return + } } }