diff options
| author | Junio C Hamano <gitster@pobox.com> | 2024-09-16 14:22:54 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2024-09-16 14:22:55 -0700 |
| commit | be8ca2848a9e73f6ddc31ebce2ddc3c367d4f0cb (patch) | |
| tree | 517a2dce7d35fd6a2b98ea2f6114563cc4e0cfb7 /log-tree.c | |
| parent | Merge branch 'ah/apply-3way-ours' (diff) | |
| parent | remerge-diff: clean up temporary objdir at a central place (diff) | |
| download | git-be8ca2848a9e73f6ddc31ebce2ddc3c367d4f0cb.tar.gz git-be8ca2848a9e73f6ddc31ebce2ddc3c367d4f0cb.zip | |
Merge branch 'jc/range-diff-lazy-setup'
Code clean-up.
* jc/range-diff-lazy-setup:
remerge-diff: clean up temporary objdir at a central place
remerge-diff: lazily prepare temporary objdir on demand
Diffstat (limited to 'log-tree.c')
| -rw-r--r-- | log-tree.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/log-tree.c b/log-tree.c index 04cef08b83..3758e0d3b8 100644 --- a/log-tree.c +++ b/log-tree.c @@ -1015,6 +1015,17 @@ static int do_remerge_diff(struct rev_info *opt, struct strbuf parent1_desc = STRBUF_INIT; struct strbuf parent2_desc = STRBUF_INIT; + /* + * Lazily prepare a temporary object directory and rotate it + * into the alternative object store list as the primary. + */ + if (opt->remerge_diff && !opt->remerge_objdir) { + opt->remerge_objdir = tmp_objdir_create("remerge-diff"); + if (!opt->remerge_objdir) + return error(_("unable to create temporary object directory")); + tmp_objdir_replace_primary_odb(opt->remerge_objdir, 1); + } + /* Setup merge options */ init_ui_merge_options(&o, the_repository); o.show_rename_progress = 0; @@ -1051,10 +1062,7 @@ static int do_remerge_diff(struct rev_info *opt, merge_finalize(&o, &res); /* Clean up the contents of the temporary object directory */ - if (opt->remerge_objdir) - tmp_objdir_discard_objects(opt->remerge_objdir); - else - BUG("did a remerge diff without remerge_objdir?!?"); + tmp_objdir_discard_objects(opt->remerge_objdir); return !opt->loginfo; } |
