merge-ort: implement format_commit()

This implementation is based on a mixture of print_commit() and output_commit_title() from merge-recursive.c so that it can be used to take over both functions. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Elijah Newren committed Jan 1, 2021 at 02:34 UTC 70f19c7fced2ec49fd9bca827370835d84d782c7
1 file changed +13 -1
merge-ort.c
+13 -1
index 2dfab1858f..bf704bcd34 100644 --- a/merge-ort.c +++ b/merge-ort.c @@ -328,7 +328,19 @@ static void format_commit(struct strbuf *sb, int indent, struct commit *commit) { - die("Not yet implemented."); + struct merge_remote_desc *desc; + struct pretty_print_context ctx = {0}; + ctx.abbrev = DEFAULT_ABBREV; + + strbuf_addchars(sb, ' ', indent); + desc = merge_remote_util(commit); + if (desc) { + strbuf_addf(sb, "virtual %s\n", desc->name); + return; + } + + format_commit_message(commit, "%h %s", sb, &ctx); + strbuf_addch(sb, '\n'); } __attribute__((format (printf, 4, 5)))