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 <gitster@pobox.com>
This commit is contained in:
parent
212620fe7e
commit
bd1470b8cb
15
log-tree.c
15
log-tree.c
@ -677,8 +677,13 @@ void show_log(struct rev_info *opt)
|
|||||||
append_signoff(&msgbuf, opt->add_signoff);
|
append_signoff(&msgbuf, opt->add_signoff);
|
||||||
|
|
||||||
if ((ctx.fmt != CMIT_FMT_USERFORMAT) &&
|
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);
|
strbuf_addstr(&msgbuf, ctx.notes_message);
|
||||||
|
}
|
||||||
|
|
||||||
if (opt->show_log_size) {
|
if (opt->show_log_size) {
|
||||||
printf("log size %i\n", (int)msgbuf.len);
|
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)
|
int log_tree_diff_flush(struct rev_info *opt)
|
||||||
{
|
{
|
||||||
|
opt->shown_dashes = 0;
|
||||||
diffcore_std(&opt->diffopt);
|
diffcore_std(&opt->diffopt);
|
||||||
|
|
||||||
if (diff_queue_is_empty()) {
|
if (diff_queue_is_empty()) {
|
||||||
@ -737,10 +743,11 @@ int log_tree_diff_flush(struct rev_info *opt)
|
|||||||
opt->diffopt.output_prefix_data);
|
opt->diffopt.output_prefix_data);
|
||||||
fwrite(msg->buf, msg->len, 1, stdout);
|
fwrite(msg->buf, msg->len, 1, stdout);
|
||||||
}
|
}
|
||||||
if ((pch & opt->diffopt.output_format) == pch) {
|
if (!opt->shown_dashes) {
|
||||||
printf("---");
|
if ((pch & opt->diffopt.output_format) == pch)
|
||||||
|
printf("---");
|
||||||
|
putchar('\n');
|
||||||
}
|
}
|
||||||
putchar('\n');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff_flush(&opt->diffopt);
|
diff_flush(&opt->diffopt);
|
||||||
|
@ -111,6 +111,7 @@ struct rev_info {
|
|||||||
|
|
||||||
/* Format info */
|
/* Format info */
|
||||||
unsigned int shown_one:1,
|
unsigned int shown_one:1,
|
||||||
|
shown_dashes:1,
|
||||||
show_merge:1,
|
show_merge:1,
|
||||||
show_notes:1,
|
show_notes:1,
|
||||||
show_notes_given:1,
|
show_notes_given:1,
|
||||||
|
@ -623,9 +623,12 @@ test_expect_success 'format-patch --signoff' '
|
|||||||
test_expect_success 'format-patch --notes --signoff' '
|
test_expect_success 'format-patch --notes --signoff' '
|
||||||
git notes --ref test add -m "test message" HEAD &&
|
git notes --ref test add -m "test message" HEAD &&
|
||||||
git format-patch -1 --signoff --stdout --notes=test >out &&
|
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 "/^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
|
echo "fatal: --name-only does not make sense" > expect.name-only
|
||||||
|
Loading…
Reference in New Issue
Block a user