From bd1470b8cb0cfb42c7de3b9084cdd8ae53aa1d4c Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 17 Oct 2012 21:27:22 -0700 Subject: [PATCH] format-patch --notes: show notes after three-dashes When inserting the note after the commit log message to format-patch output, add three dashes before the note. Record the fact that we did so in the rev_info and omit showing duplicated three dashes in the usual codepath that is used when notes are not being shown. Signed-off-by: Junio C Hamano --- log-tree.c | 15 +++++++++++---- revision.h | 1 + t/t4014-format-patch.sh | 7 +++++-- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/log-tree.c b/log-tree.c index 4390b117e3..712a22b19b 100644 --- a/log-tree.c +++ b/log-tree.c @@ -677,8 +677,13 @@ void show_log(struct rev_info *opt) append_signoff(&msgbuf, opt->add_signoff); if ((ctx.fmt != CMIT_FMT_USERFORMAT) && - ctx.notes_message && *ctx.notes_message) + ctx.notes_message && *ctx.notes_message) { + if (ctx.fmt == CMIT_FMT_EMAIL) { + strbuf_addstr(&msgbuf, "---\n"); + opt->shown_dashes = 1; + } strbuf_addstr(&msgbuf, ctx.notes_message); + } if (opt->show_log_size) { printf("log size %i\n", (int)msgbuf.len); @@ -710,6 +715,7 @@ void show_log(struct rev_info *opt) int log_tree_diff_flush(struct rev_info *opt) { + opt->shown_dashes = 0; diffcore_std(&opt->diffopt); if (diff_queue_is_empty()) { @@ -737,10 +743,11 @@ int log_tree_diff_flush(struct rev_info *opt) opt->diffopt.output_prefix_data); fwrite(msg->buf, msg->len, 1, stdout); } - if ((pch & opt->diffopt.output_format) == pch) { - printf("---"); + if (!opt->shown_dashes) { + if ((pch & opt->diffopt.output_format) == pch) + printf("---"); + putchar('\n'); } - putchar('\n'); } } diff_flush(&opt->diffopt); diff --git a/revision.h b/revision.h index a95bd0b3f3..059bfff812 100644 --- a/revision.h +++ b/revision.h @@ -111,6 +111,7 @@ struct rev_info { /* Format info */ unsigned int shown_one:1, + shown_dashes:1, show_merge:1, show_notes:1, show_notes_given:1, diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh index bea63814e6..9750ba6996 100755 --- a/t/t4014-format-patch.sh +++ b/t/t4014-format-patch.sh @@ -623,9 +623,12 @@ test_expect_success 'format-patch --signoff' ' test_expect_success 'format-patch --notes --signoff' ' git notes --ref test add -m "test message" HEAD && git format-patch -1 --signoff --stdout --notes=test >out && - # Notes message must come after S-o-b + # Three dashes must come after S-o-b ! sed "/^Signed-off-by: /q" out | grep "test message" && - sed "1,/^Signed-off-by: /d" out | grep "test message" + sed "1,/^Signed-off-by: /d" out | grep "test message" && + # Notes message must come after three dashes + ! sed "/^---$/q" out | grep "test message" && + sed "1,/^---$/d" out | grep "test message" ' echo "fatal: --name-only does not make sense" > expect.name-only -- 2.11.4.GIT