* 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
This commit is contained in:
Junio C Hamano 2024-11-11 12:47:44 +09:00
commit b31fb630c0
2 changed files with 29 additions and 3 deletions

View File

@ -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.

View File

@ -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
}
}
}