1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-06-08 18:16:09 +02:00

git-gui: remove lines starting with the comment character

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 using git-stripspace. If the config is not set,
'#' is taken as the default. Also add a message educating users about
the comment character.

Signed-off-by: Pratyush Yadav <me@yadavpratyush.com>
This commit is contained in:
Pratyush Yadav 2021-02-03 01:28:12 +05:30
parent 7da7ef6d7a
commit b9a43869c9
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.