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

Re: Some Commit Messages Scare git-rev-list

From
Junio C Hamano <junkio@cox.net>
Date
Apr 12, 2006, 18:46 UTC
Message-ID
<7v3bgi4op7.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<Pine.LNX.4.64.0604121002220.14565@g5.osdl.org>
Linus Torvalds <torvalds@osdl.org> writes:
> Fixed like so..
Thanks.
Show 11 quoted lines
> However, your script shows another problem: the "#" added at the end of 
> the line for a 
>
> 	echo -n "duh" | git-commit -F - -a
>
> seems to be because we append the "git status" output to it, and then we 
> drop the lines that start with a '#', but due to the "-n", the first # 
> ends up being at the end of the line. 
>
> I suspect that when we get the commit message like that, we should _not_ 
> do any of the commit message editing at all.
True.

-- >8 -- [PATCH] git-commit: do not muck with commit message when no_edit is set.

Spotted by Linus and Darrin Thompson. When we took a commit message from -F <file> with an incomplete line, we appended "git status" output, which ended up attaching a lone "#" at the end.

We still need the "do we have anything to commit?" check by running "status" (which has to know what to do in different cases with -i/-o/-a), but there is no point appending its output to the proposed commit message given by the user.

Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 git-commit.sh |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)
475443c8489d9167b944367d8ec8bfef77bee0a5
diff --git a/git-commit.sh b/git-commit.sh
index 1e7c09e..bd3dc71 100755
--- a/git-commit.sh
+++ b/git-commit.sh
@@ -537,7 +537,7 @@ t)
 	;;
 esac
 
-if [ -f "$GIT_DIR/MERGE_HEAD" ]; then
+if test -f "$GIT_DIR/MERGE_HEAD" && test -z "$no_edit"; then
 	echo "#"
 	echo "# It looks like you may be committing a MERGE."
 	echo "# If this is not correct, please remove the file"
@@ -605,16 +605,23 @@ else
 	current=
 fi
 
-{
-	test -z "$only_include_assumed" || echo "$only_include_assumed"
-	run_status
-} >>"$GIT_DIR"/COMMIT_EDITMSG
+if test -z "$no_edit"
+then
+	{
+		test -z "$only_include_assumed" || echo "$only_include_assumed"
+		run_status
+	} >>"$GIT_DIR"/COMMIT_EDITMSG
+else
+	# we need to check if there is anything to commit
+	run_status >/dev/null 
+fi
 if [ "$?" != "0" -a ! -f "$GIT_DIR/MERGE_HEAD" -a -z "$amend" ]
 then
 	rm -f "$GIT_DIR/COMMIT_EDITMSG"
 	run_status
 	exit 1
 fi
+
 case "$no_edit" in
 '')
 	case "${VISUAL:-$EDITOR},$TERM" in
-- 
1.3.0.rc3.g72c1
Previous: Linus TorvaldsNext: Junio C Hamano
Message 3 of 5 in “Some Commit Messages Scare git-rev-list”
  1. Darrin ThompsonApr 12, 2006
  2. Linus TorvaldsApr 12, 2006
  3. Junio C HamanoApr 12, 2006
  4. Junio C HamanoApr 12, 2006
  5. Linus TorvaldsApr 12, 2006

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.