The comment character is specified by the config variable 'core.commentchar'. Any lines starting with this character is considered a comment and should not be included in the final commit message. Teach git-gui to filter out lines in the commit message that start with the comment character. If the config is not set, '#' is taken as the default. Signed-off-by: Pratyush Yadav <me@xxxxxxxxxxxxxxxxx> --- lib/commit.tcl | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/lib/commit.tcl b/lib/commit.tcl index 11379f8..3c3035f 100644 --- a/lib/commit.tcl +++ b/lib/commit.tcl @@ -209,6 +209,28 @@ You must stage at least 1 file before you can commit. # set msg [string trim [$ui_comm get 1.0 end]] regsub -all -line {[ \t\r]+$} $msg {} msg + + # Remove lines starting with the comment character. + set comment_char [get_config core.commentchar] + if {[string length $comment_char] > 1} { + error_popup [mc "core.commitchar should only be one character."] + unlock_index + return + } + + if {$comment_char eq {}} { + set comment_char "#" + } + + # If the comment character is not alphabetical, then we need to escape it + # with a backslash to make sure it is not interpreted as a special character + # in the regex. + if {![string is alpha $comment_char]} { + set comment_char "\\$comment_char" + } + + regsub -all -line "$comment_char.*(\\n|\\Z)" $msg {} msg + if {$msg eq {}} { error_popup [mc "Please supply a commit message. -- 2.30.0