summaryrefslogtreecommitdiff
path: root/diff-merges.c
diff options
context:
space:
mode:
authorSergey Organov <sorganov@gmail.com>2020-12-21 15:19:38 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-12-21 21:47:31 (GMT)
commit09322b1da92fd32204c8b4b07cf12decccfe47f3 (patch)
tree74698f04a0722bf2ab75f8af317b9225ba414860 /diff-merges.c
parent564a4fc8471b41fc05bda16e4bbb02a99b515cbf (diff)
downloadgit-09322b1da92fd32204c8b4b07cf12decccfe47f3.zip
git-09322b1da92fd32204c8b4b07cf12decccfe47f3.tar.gz
git-09322b1da92fd32204c8b4b07cf12decccfe47f3.tar.bz2
diff-merges: new function diff_merges_suppress()
This function sets all the relevant flags to disabled state, so that no code that checks only one of them get it wrong. Then we call this new function everywhere where diff merges output suppression is needed. Signed-off-by: Sergey Organov <sorganov@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'diff-merges.c')
-rw-r--r--diff-merges.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/diff-merges.c b/diff-merges.c
index 8325ab8..23e6cb1 100644
--- a/diff-merges.c
+++ b/diff-merges.c
@@ -2,6 +2,14 @@
#include "revision.h"
+static void suppress(struct rev_info *revs)
+{
+ revs->ignore_merges = 1;
+ revs->first_parent_merges = 0;
+ revs->combine_merges = 0;
+ revs->dense_combined_merges = 0;
+}
+
/*
* Public functions. They are in the order they are called.
*/
@@ -34,13 +42,13 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv)
revs->dense_combined_merges = 1;
revs->combine_merges = 1;
} else if (!strcmp(arg, "--no-diff-merges")) {
- revs->ignore_merges = 1;
+ suppress(revs);
} else if (!strcmp(arg, "--combined-all-paths")) {
revs->diff = 1;
revs->combined_all_paths = 1;
} else if ((argcount = parse_long_opt("diff-merges", argv, &optarg))) {
if (!strcmp(optarg, "off")) {
- revs->ignore_merges = 1;
+ suppress(revs);
} else {
die(_("unknown value for --diff-merges: %s"), optarg);
}
@@ -50,6 +58,11 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv)
return argcount;
}
+void diff_merges_suppress(struct rev_info *revs)
+{
+ suppress(revs);
+}
+
void diff_merges_default_to_first_parent(struct rev_info *revs)
{
if (revs->ignore_merges < 0) /* No -m */