aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--merge-recursive.c6
-rw-r--r--merge-recursive.h3
2 files changed, 5 insertions, 4 deletions
diff --git a/merge-recursive.c b/merge-recursive.c
index 43dec3307e..262db8bebb 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -3598,9 +3598,6 @@ static int merge_recursive_internal(struct merge_options *opt,
commit_list_insert(h1, &(*result)->parents);
commit_list_insert(h2, &(*result)->parents->next);
}
- flush_output(opt);
- if (!opt->call_depth && opt->buffer_output < 2)
- strbuf_release(&opt->obuf);
return clean;
}
@@ -3620,6 +3617,9 @@ static int merge_start(struct merge_options *opt, struct tree *head)
static void merge_finalize(struct merge_options *opt)
{
+ flush_output(opt);
+ if (!opt->call_depth && opt->buffer_output < 2)
+ strbuf_release(&opt->obuf);
if (show(opt, 2))
diff_warn_rename_limit("merge.renamelimit",
opt->needed_rename_limit, 0);
diff --git a/merge-recursive.h b/merge-recursive.h
index 9e040608fe..933d6e7642 100644
--- a/merge-recursive.h
+++ b/merge-recursive.h
@@ -38,7 +38,8 @@ struct merge_options {
/* console output related options */
int verbosity;
unsigned buffer_output; /* 1: output at end, 2: keep buffered */
- struct strbuf obuf; /* output buffer */
+ struct strbuf obuf; /* output buffer; if buffer_output == 2, caller
+ * must handle and call strbuf_release */
/* miscellaneous control options */
const char *subtree_shift;