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