]> git.ipfire.org Git - thirdparty/git.git/blobdiff - diff-merges.c
Merge branch 'ab/ambiguous-object-name'
[thirdparty/git.git] / diff-merges.c
index 5060ccd890bd307b1276e367e3b70872718e3af7..a833fd747ad50e4b61704cff3662fdb47f2b4481 100644 (file)
@@ -17,12 +17,14 @@ static void suppress(struct rev_info *revs)
        revs->combined_all_paths = 0;
        revs->merges_imply_patch = 0;
        revs->merges_need_diff = 0;
+       revs->remerge_diff = 0;
 }
 
 static void set_separate(struct rev_info *revs)
 {
        suppress(revs);
        revs->separate_merges = 1;
+       revs->simplify_history = 0;
 }
 
 static void set_first_parent(struct rev_info *revs)
@@ -45,6 +47,13 @@ static void set_dense_combined(struct rev_info *revs)
        revs->dense_combined_merges = 1;
 }
 
+static void set_remerge_diff(struct rev_info *revs)
+{
+       suppress(revs);
+       revs->remerge_diff = 1;
+       revs->simplify_history = 0;
+}
+
 static diff_merges_setup_func_t func_by_opt(const char *optarg)
 {
        if (!strcmp(optarg, "off") || !strcmp(optarg, "none"))
@@ -57,6 +66,8 @@ static diff_merges_setup_func_t func_by_opt(const char *optarg)
                return set_combined;
        else if (!strcmp(optarg, "cc") || !strcmp(optarg, "dense-combined"))
                return set_dense_combined;
+       else if (!strcmp(optarg, "r") || !strcmp(optarg, "remerge"))
+               return set_remerge_diff;
        else if (!strcmp(optarg, "m") || !strcmp(optarg, "on"))
                return set_to_default;
        return NULL;
@@ -110,6 +121,9 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv)
        } else if (!strcmp(arg, "--cc")) {
                set_dense_combined(revs);
                revs->merges_imply_patch = 1;
+       } else if (!strcmp(arg, "--remerge-diff")) {
+               set_remerge_diff(revs);
+               revs->merges_imply_patch = 1;
        } else if (!strcmp(arg, "--no-diff-merges")) {
                suppress(revs);
        } else if (!strcmp(arg, "--combined-all-paths")) {