diff options
author | Yann Dirson <ydirson@altern.org> | 2006-06-24 00:04:05 +0200 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-06-25 00:35:52 -0700 |
commit | 29f4ad867cd15f4029c280c417f4a0866d5229a9 (patch) | |
tree | 5b714456a96bc2fd121452e8a1b77f47fada270c | |
parent | Rename safe_strncpy() to strlcpy(). (diff) | |
download | tgif-29f4ad867cd15f4029c280c417f4a0866d5229a9.tar.xz |
git-commit: filter out log message lines only when editor was run.
The current behaviour strips out lines starting with a # even when fed
through stdin or -m. This is particularly bad when importing history from
another SCM (tailor 0.9.23 uses git-commit). In the best cases all lines
are stripped and the commit fails with a confusing "empty log message"
error, but in many cases the commit is done, with loss of information.
Note that it is quite peculiar to just have "#" handled as a leading
comment char here. One commonly meet CVS: or CG: or STG: as prefixes, and
using GIT: would be more robust as well as consistent with other commit
tools. However, that would break any tool relying on the # (if any).
Signed-off-by: Yann Dirson <ydirson@altern.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rwxr-xr-x | git-commit.sh | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/git-commit.sh b/git-commit.sh index e74fe640b8..128db6c52a 100755 --- a/git-commit.sh +++ b/git-commit.sh @@ -693,13 +693,18 @@ t) fi esac -sed -e ' - /^diff --git a\/.*/{ - s/// - q - } - /^#/d -' "$GIT_DIR"/COMMIT_EDITMSG | +if test -z "$no_edit" +then + sed -e ' + /^diff --git a\/.*/{ + s/// + q + } + /^#/d + ' "$GIT_DIR"/COMMIT_EDITMSG +else + cat "$GIT_DIR"/COMMIT_EDITMSG +fi | git-stripspace >"$GIT_DIR"/COMMIT_MSG if cnt=`grep -v -i '^Signed-off-by' "$GIT_DIR"/COMMIT_MSG | |