From: Gerrit Pape Date: Fri, 06 Jul 2007 14:42:27 GMT Subject: [PATCH] git-commit: don't add multiple Signed-off-by: from the same identity Message-ID: <20070706144227.11736.qmail@046ba2bc1a0185.315fe32.mid.smarden.org> If requested to signoff a commit, don't add another Signed-off-by: line to the commit message if the exact same line is already there. This was noticed and requested by Josh Triplett through http://bugs.debian.org/430851 Signed-off-by: Gerrit Pape --- git-commit.sh | 20 +++++++++++--------- 1 files changed, 11 insertions(+), 9 deletions(-) diff --git a/git-commit.sh b/git-commit.sh index f866f95..7a7d19a 100755 --- a/git-commit.sh +++ b/git-commit.sh @@ -458,16 +458,18 @@ fi | git stripspace >"$GIT_DIR"/COMMIT_EDITMSG case "$signoff" in t) - need_blank_before_signoff= + sign=$(git-var GIT_COMMITTER_IDENT | sed -e ' + s/>.*/>/ + s/^/Signed-off-by: / + ') + blank_before_signoff= tail -n 1 "$GIT_DIR"/COMMIT_EDITMSG | - grep 'Signed-off-by:' >/dev/null || need_blank_before_signoff=yes - { - test -z "$need_blank_before_signoff" || echo - git-var GIT_COMMITTER_IDENT | sed -e ' - s/>.*/>/ - s/^/Signed-off-by: / - ' - } >>"$GIT_DIR"/COMMIT_EDITMSG + grep 'Signed-off-by:' >/dev/null || blank_before_signoff=' +' + tail -n 1 "$GIT_DIR"/COMMIT_EDITMSG | + grep "$sign"$ >/dev/null || + printf '%s%s\n' "$blank_before_signoff" "$sign" \ + >>"$GIT_DIR"/COMMIT_EDITMSG ;; esac -- 1.5.2.1