git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] git-gui: do not end the commit message with an empty line

From
Johannes Sixt <j6t@kdbg.org>
Date
May 14, 2025, 20:50 UTC
Message-ID
<ed1ca9fa-15f0-4601-be31-8a578c7fb788@kdbg.org>

The commit message is processed to remove unnecessary empty lines. In particular, it is ensured that the text ends with at most one LF character. This one is always present, because the Tk text widget ensures that is present.

However, we forgot that the processed text is written to the commit message file using 'puts', which also appends a LF character, so that the final commit message ends with two LF. Trim all trailing LF characters, and while we are here, use `string trim`, which lets us remove the leading LF in the same command.

Reported-by: Gareth Fenn <garethfenn@gmail.com>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
 lib/commit.tcl | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/lib/commit.tcl b/lib/commit.tcl
index a570f9cdc6a4..f3c714e600ac 100644
--- a/lib/commit.tcl
+++ b/lib/commit.tcl
@@ -214,12 +214,10 @@ You must stage at least 1 file before you can commit.
 	global comment_string
 	set cmt_rx [strcat {(^|\n)} [regsub -all {\W} $comment_string {\\&}] {[^\n]*}]
 	regsub -all $cmt_rx $msg {\1} msg
-	# Strip leading empty lines
-	regsub {^\n*} $msg {} msg
+	# Strip leading and trailing empty lines
+	set msg [string trim $msg \n]
 	# 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.
 
-- 
2.49.0.212.gc22db56b11
Next: Junio C Hamano
Message 1 of 5 in “git-gui: do not end the commit message with an empty line”
  1. git-gui: do not end the commit message with an empty lineJohannes Sixt, May 14, 2025
  2. Junio C HamanoMay 14, 2025
  3. Johannes SixtMay 15, 2025
  4. Oswald BuddenhagenMay 15, 2025
  5. git-gui: do not end the commit message with an empty lineJohannes Sixt, May 15, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.