Skip to content

Commit

Permalink
format-patch --notes: show notes after three-dashes
Browse files Browse the repository at this point in the history
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 <gitster@pobox.com>
  • Loading branch information
gitster committed Oct 18, 2012
1 parent 212620f commit bd1470b
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 6 deletions.
15 changes: 11 additions & 4 deletions log-tree.c
Expand Up @@ -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);
Expand Down Expand Up @@ -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()) {
Expand Down Expand Up @@ -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);
Expand Down
1 change: 1 addition & 0 deletions revision.h
Expand Up @@ -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,
Expand Down
7 changes: 5 additions & 2 deletions t/t4014-format-patch.sh
Expand Up @@ -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
Expand Down

0 comments on commit bd1470b

Please sign in to comment.