builtin-commit --s: add a newline if the last line was not a S-o-b

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>
This commit is contained in:
Johannes Schindelin 2007-11-11 17:36:27 +00:00 committed by Junio C Hamano
parent 13208572fb
commit 2150554b0e
2 changed files with 5 additions and 1 deletions

View 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);
}

View File

@ -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