Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--diff-merges.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/diff-merges.c b/diff-merges.c
index e3c0190ebd..4d22da1795 100644
--- a/diff-merges.c
+++ b/diff-merges.c
@@ -17,6 +17,12 @@ static void set_separate(struct rev_info *revs)
revs->separate_merges = 1;
}
+static void set_first_parent(struct rev_info *revs)
+{
+ set_separate(revs);
+ revs->first_parent_merges = 1;
+}
+
static void set_m(struct rev_info *revs)
{
/*
@@ -44,11 +50,18 @@ static void set_dense_combined(struct rev_info *revs)
static void set_diff_merges(struct rev_info *revs, const char *optarg)
{
- if (!strcmp(optarg, "off")) {
+ if (!strcmp(optarg, "off") || !strcmp(optarg, "none"))
suppress(revs);
- } else {
+ else if (!strcmp(optarg, "first-parent"))
+ set_first_parent(revs);
+ else if (!strcmp(optarg, "separate"))
+ set_separate(revs);
+ else if (!strcmp(optarg, "combined"))
+ set_combined(revs);
+ else if (!strcmp(optarg, "dense-combined"))
+ set_dense_combined(revs);
+ else
die(_("unknown value for --diff-merges: %s"), optarg);
- }
}
/*