summaryrefslogtreecommitdiffstats
path: root/git-gui
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2024-11-11 04:47:44 +0100
committerJunio C Hamano <gitster@pobox.com>2024-11-11 04:47:44 +0100
commitb31fb630c0fc6869a33ed717163e8a1210460d94 (patch)
treef5dec9d70d06e8b5095ed20c66cea490ef095795 /git-gui
parentThe eighth batch (diff)
parentMerge branch 'ob/strip-comments-on-commit' (diff)
downloadgit-b31fb630c0fc6869a33ed717163e8a1210460d94.tar.xz
git-b31fb630c0fc6869a33ed717163e8a1210460d94.zip
Merge https://github.com/j6t/git-gui
* https://github.com/j6t/git-gui: git gui: add directly calling merge tool from configuration git-gui: strip commit messages less aggressively git-gui: strip comments and consecutive empty lines from commit messages
Diffstat (limited to 'git-gui')
-rw-r--r--git-gui/lib/commit.tcl11
-rw-r--r--git-gui/lib/mergetool.tcl21
2 files changed, 29 insertions, 3 deletions
diff --git a/git-gui/lib/commit.tcl b/git-gui/lib/commit.tcl
index 11379f8ad3..208dc2817c 100644
--- a/git-gui/lib/commit.tcl
+++ b/git-gui/lib/commit.tcl
@@ -207,8 +207,17 @@ You must stage at least 1 file before you can commit.
# -- A message is required.
#
- set msg [string trim [$ui_comm get 1.0 end]]
+ set msg [$ui_comm get 1.0 end]
+ # Strip trailing whitespace
regsub -all -line {[ \t\r]+$} $msg {} msg
+ # Strip comment lines
+ regsub -all {(^|\n)#[^\n]*} $msg {\1} msg
+ # Strip leading empty lines
+ regsub {^\n*} $msg {} msg
+ # Compress consecutive empty lines
+ regsub -all {\n{3,}} $msg "\n\n" msg
+ # Strip trailing empty line
+ regsub {\n\n$} $msg "\n" msg
if {$msg eq {}} {
error_popup [mc "Please supply a commit message.
diff --git a/git-gui/lib/mergetool.tcl b/git-gui/lib/mergetool.tcl
index e688b016ef..8b8c16b1d6 100644
--- a/git-gui/lib/mergetool.tcl
+++ b/git-gui/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
+ }
}
}