Merge branch 'py/commit-comments'

Use git-stripspace to remove comment lines from the commit message. Also
use it to clean up whitespace instead of rolling our own logic.

* py/commit-comments:
  git-gui: remove lines starting with the comment character
This commit is contained in:
Pratyush Yadav 2021-02-22 20:19:53 +05:30
commit b1056f60b6
2 changed files with 21 additions and 2 deletions

View File

@ -875,6 +875,7 @@ set default_config(merge.summary) false
set default_config(merge.verbosity) 2
set default_config(user.name) {}
set default_config(user.email) {}
set default_config(core.commentchar) "#"
set default_config(gui.encoding) [encoding system]
set default_config(gui.matchtrackingbranch) false
@ -3436,6 +3437,10 @@ proc trace_commit_type {varname args} {
merge {set txt [mc "Merge Commit Message:"]}
* {set txt [mc "Commit Message:"]}
}
set comment_char [get_config core.commentchar]
set txt [string cat $txt \
[mc " (Lines starting with '$comment_char' will be ignored)"]]
$ui_coml conf -text $txt
}
trace add variable commit_type write trace_commit_type

View File

@ -141,6 +141,20 @@ proc setup_commit_encoding {msg_wt {quiet 0}} {
}
}
proc strip_msg {msg} {
set cmd [concat [list | ] [_git_cmd stripspace] --strip-comments]
_trace_exec $cmd
set fd [open $cmd r+]
fconfigure $fd -translation binary -encoding utf-8
puts -nonewline $fd $msg
close $fd w
set result [read $fd]
close $fd
return $result
}
proc commit_tree {} {
global HEAD commit_type file_states ui_comm repo_config
global pch_error
@ -207,8 +221,8 @@ 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]]
regsub -all -line {[ \t\r]+$} $msg {} msg
set msg [strip_msg [$ui_comm get 1.0 end]]
if {$msg eq {}} {
error_popup [mc "Please supply a commit message.