]> git.ipfire.org Git - thirdparty/git.git/blobdiff - builtin/log.c
Merge branch 'en/remerge-diff'
[thirdparty/git.git] / builtin / log.c
index 4b493408cc5d1253e84fd17dddec58340d38aa7e..093d0d26553aa88b0d36601d6b7e622a04a9e3bf 100644 (file)
@@ -35,6 +35,7 @@
 #include "repository.h"
 #include "commit-reach.h"
 #include "range-diff.h"
+#include "tmp-objdir.h"
 
 #define MAIL_DEFAULT_WRAP 72
 #define COVER_FROM_AUTO_MAX_SUBJECT_LEN 100
@@ -422,6 +423,13 @@ static int cmd_log_walk(struct rev_info *rev)
        int saved_nrl = 0;
        int saved_dcctc = 0;
 
+       if (rev->remerge_diff) {
+               rev->remerge_objdir = tmp_objdir_create("remerge-diff");
+               if (!rev->remerge_objdir)
+                       die(_("unable to create temporary object directory"));
+               tmp_objdir_replace_primary_odb(rev->remerge_objdir, 1);
+       }
+
        if (rev->early_output)
                setup_early_output();
 
@@ -464,6 +472,11 @@ static int cmd_log_walk(struct rev_info *rev)
        rev->diffopt.no_free = 0;
        diff_free(&rev->diffopt);
 
+       if (rev->remerge_diff) {
+               tmp_objdir_destroy(rev->remerge_objdir);
+               rev->remerge_objdir = NULL;
+       }
+
        if (rev->diffopt.output_format & DIFF_FORMAT_CHECKDIFF &&
            rev->diffopt.flags.check_failed) {
                return 02;
@@ -1958,6 +1971,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
                die(_("--name-status does not make sense"));
        if (rev.diffopt.output_format & DIFF_FORMAT_CHECKDIFF)
                die(_("--check does not make sense"));
+       if (rev.remerge_diff)
+               die(_("--remerge-diff does not make sense"));
 
        if (!use_patch_format &&
                (!rev.diffopt.output_format ||