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 780eec79bd9236000690e7333453266e376cd2fe..4dfa8027580e5113d4707c59a96c4cf3ffd37f07 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 49c1922dde3c7d46dfc1fbe7d1a99756714dd24f..baed6ce96beb260a32e027dd573313c82202ea7b 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