]> git.ipfire.org Git - thirdparty/git.git/commitdiff
diff-merges: make -m/-c/--cc explicitly mutually exclusive
authorSergey Organov <sorganov@gmail.com>
Mon, 21 Dec 2020 15:19:50 +0000 (18:19 +0300)
committerJunio C Hamano <gitster@pobox.com>
Mon, 21 Dec 2020 21:47:31 +0000 (13:47 -0800)
-c/--cc got precedence over -m only because of external logic where
corresponding flags are checked before that for -m. This is too
error-prone, so add code that explicitly makes these 3 options
mutually exclusive, so that the last option specified on the
command-line gets precedence.

Signed-off-by: Sergey Organov <sorganov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff-merges.c

index b8fd92adcf16188f98b34af8b430c73e93582503..e3c0190ebd95fa034e9858d0f8d9841cae5f3a0a 100644 (file)
@@ -8,6 +8,7 @@ static void suppress(struct rev_info *revs)
        revs->first_parent_merges = 0;
        revs->combine_merges = 0;
        revs->dense_combined_merges = 0;
+       revs->combined_all_paths = 0;
 }
 
 static void set_separate(struct rev_info *revs)
@@ -29,12 +30,14 @@ static void set_m(struct rev_info *revs)
 
 static void set_combined(struct rev_info *revs)
 {
+       suppress(revs);
        revs->combine_merges = 1;
        revs->dense_combined_merges = 0;
 }
 
 static void set_dense_combined(struct rev_info *revs)
 {
+       suppress(revs);
        revs->combine_merges = 1;
        revs->dense_combined_merges = 1;
 }