diff options
author | Pratyush Yadav <me@yadavpratyush.com> | 2021-02-22 20:19:53 +0530 |
---|---|---|
committer | Pratyush Yadav <me@yadavpratyush.com> | 2021-02-22 20:19:53 +0530 |
commit | b1056f60b63f1bc8226d01881bc829e171fc78bf (patch) | |
tree | 980c9403b749b7f9c5d8b99d271c94c695ffc540 | |
parent | 7da7ef6d7a2139699e2d25d7f4e679327bffa107 (diff) | |
parent | b9a43869c9f96d3577d6f568c1bda1940c8f0e31 (diff) | |
download | git-b1056f60b63f1bc8226d01881bc829e171fc78bf.tar.gz |
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
-rwxr-xr-x | git-gui.sh | 5 | ||||
-rw-r--r-- | lib/commit.tcl | 18 |
2 files changed, 21 insertions, 2 deletions
diff --git a/git-gui.sh b/git-gui.sh index 201524c34e..236bc4e61d 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -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 diff --git a/lib/commit.tcl b/lib/commit.tcl index 11379f8ad3..23d67d4651 100644 --- a/lib/commit.tcl +++ b/lib/commit.tcl @@ -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. |