OSDN Git Service

builtin-commit --s: add a newline if the last line was not a S-o-b
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>
Sun, 11 Nov 2007 17:36:27 +0000 (17:36 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 23 Nov 2007 01:05:03 +0000 (17:05 -0800)
The rule is this: if the last line already contains the sign off by the
current committer, do nothing.  If it contains another sign off, just
add the sign off of the current committer.  If the last line does not
contain a sign off, add a new line before adding the sign off.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-commit.c
t/t7500-commit.sh

index 780eec7..4dfa802 100644 (file)
@@ -197,8 +197,11 @@ static int prepare_log_message(const char *index_file, const char *prefix)
 
                for (i = sb.len - 1; i > 0 && sb.buf[i - 1] != '\n'; i--)
                        ; /* do nothing */
-               if (prefixcmp(sb.buf + i, sob.buf))
+               if (prefixcmp(sb.buf + i, sob.buf)) {
+                       if (prefixcmp(sb.buf + i, sign_off_header))
+                               strbuf_addch(&sb, '\n');
                        strbuf_addbuf(&sb, &sob);
+               }
                strbuf_release(&sob);
        }
 
index 49c1922..baed6ce 100755 (executable)
@@ -126,6 +126,7 @@ test_expect_success 'using alternate GIT_INDEX_FILE (2)' '
 
 cat > expect << EOF
 zort
+
 Signed-off-by: C O Mitter <committer@example.com>
 EOF