aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Sixt <j6t@kdbg.org>2024-11-09 14:34:50 +0100
committerJohannes Sixt <j6t@kdbg.org>2024-11-09 14:34:50 +0100
commit492550155aec3113a4d3d2232c3f259f83737478 (patch)
treeeff319feb1516e936a87590822b3175c0b5a5730
parentMerge branch 'os/catch-rename' (diff)
parentgit gui: add directly calling merge tool from configuration (diff)
downloadgit-492550155aec3113a4d3d2232c3f259f83737478.tar.gz
git-492550155aec3113a4d3d2232c3f259f83737478.zip
Merge branch 'tb/mergetool-from-config'
* tb/mergetool-from-config: git gui: add directly calling merge tool from configuration
Diffstat (limited to '')
-rw-r--r--lib/mergetool.tcl21
1 files changed, 19 insertions, 2 deletions
diff --git a/lib/mergetool.tcl b/lib/mergetool.tcl
index e688b016ef..8b8c16b1d6 100644
--- a/lib/mergetool.tcl
+++ b/lib/mergetool.tcl
@@ -272,8 +272,25 @@ proc merge_resolve_tool2 {} {
}
}
default {
- error_popup [mc "Unsupported merge tool '%s'" $tool]
- return
+ set tool_cmd [get_config mergetool.$tool.cmd]
+ if {$tool_cmd ne {}} {
+ if {([string first {[} $tool_cmd] != -1) || ([string first {]} $tool_cmd] != -1)} {
+ error_popup [mc "Unable to process square brackets in \"mergetool.%s.cmd\" configuration option.
+
+Please remove the square brackets." $tool]
+ return
+ } else {
+ set cmdline {}
+ foreach command_part $tool_cmd {
+ lappend cmdline [subst -nobackslashes -nocommands $command_part]
+ }
+ }
+ } else {
+ error_popup [mc "Unsupported merge tool '%s'.
+
+To use this tool, configure \"mergetool.%s.cmd\" as shown in the git-config manual page." $tool $tool]
+ return
+ }
}
}