diff-merges: make -m/-c/--cc explicitly mutually exclusive
-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>
Sergey Organov committed
Dec 21, 2020 at 18:19 UTC
255a4dacc59f4f4f62cc61743f40a078b4b38647
1 file changed
+3
diff-merges.c
+3
@@ -8,6 +8,7 @@ static void suppress(struct rev_info *revs)
8
revs->first_parent_merges = 0;
9
revs->combine_merges = 0;
10
revs->dense_combined_merges = 0;
11
+ revs->combined_all_paths = 0;
12
}
13
14
static void set_separate(struct rev_info *revs)
@@ -29,12 +30,14 @@ static void set_m(struct rev_info *revs)
30
31
static void set_combined(struct rev_info *revs)
32
{
33
+ suppress(revs);
34
revs->combine_merges = 1;
35
revs->dense_combined_merges = 0;
36
}
37
38
static void set_dense_combined(struct rev_info *revs)
39
{
40
+ suppress(revs);
41
revs->combine_merges = 1;
42
revs->dense_combined_merges = 1;
43
}