Before commit 33f2f9ab, 'commit -s' would populate the edit buffer with a blank line before the Signed-off-by line. This provided a nice hint to the user that something should be filled in. Let's restore that behavior, but now let's ensure that the Signed-off-by line is preceded by two blank lines to hint that something should be filled in, and that a blank line should separate it from the Signed-off-by line. Plus, add a test for this behavior. Reported-by: John Keeping <john@xxxxxxxxxxxxx> Signed-off-by: Brandon Casey <drafnel@xxxxxxxxx> --- Ok. Here's a patch on top of 959a2623 bc/append-signed-off-by. It implements the "2 blank lines preceding sob" behavior. -Brandon sequencer.c | 5 +++-- t/t7502-commit.sh | 12 ++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/sequencer.c b/sequencer.c index 53ee49a..2dac106 100644 --- a/sequencer.c +++ b/sequencer.c @@ -1127,9 +1127,10 @@ void append_signoff(struct strbuf *msgbuf, int ignore_footer, unsigned flag) const char *append_newlines = NULL; size_t len = msgbuf->len - ignore_footer; - if (len && msgbuf->buf[len - 1] != '\n') + /* ensure a blank line precedes our signoff */ + if (!len || msgbuf->buf[len - 1] != '\n') append_newlines = "\n\n"; - else if (len > 1 && msgbuf->buf[len - 2] != '\n') + else if (len == 1 || msgbuf->buf[len - 2] != '\n') append_newlines = "\n"; if (append_newlines) diff --git a/t/t7502-commit.sh b/t/t7502-commit.sh index deb187e..a53a1e0 100755 --- a/t/t7502-commit.sh +++ b/t/t7502-commit.sh @@ -349,6 +349,18 @@ test_expect_success 'A single-liner subject with a token plus colon is not a foo ' +test_expect_success 'commit -s places sob on third line after two empty lines' ' + git commit -s --allow-empty --allow-empty-message && + cat <<-EOF >expect && + + + Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> + + EOF + egrep -v '^#' .git/COMMIT_EDITMSG >actual && + test_cmp expect actual +' + write_script .git/FAKE_EDITOR <<\EOF mv "$1" "$1.orig" ( -- 1.8.0.1.253.gfcb57d5.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html