]> git.ipfire.org Git - thirdparty/git.git/commitdiff
diff-merges: implement new values for --diff-merges
authorSergey Organov <sorganov@gmail.com>
Mon, 21 Dec 2020 15:19:51 +0000 (18:19 +0300)
committerJunio C Hamano <gitster@pobox.com>
Mon, 21 Dec 2020 21:47:32 +0000 (13:47 -0800)
We first implement new options as exact synonyms for their original
counterparts, to get all the infrastructure right, and keep functional
improvements for later commits.

The following values are implemented:

--diff-merges=         old equivalent
first|first-parent    = --first-parent (only format implications)
sep|separate          = -m
comb|combined         = -c
dense| dense-combined = --cc

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

index e3c0190ebd95fa034e9858d0f8d9841cae5f3a0a..4d22da1795777916746e4d792d37968c8caf37ec 100644 (file)
@@ -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);
-       }
 }
 
 /*