In f506b8e8b5 (git log/diff: add -G<regexp> that greps in the patch text,
2010-08-23) we were hesitant to check if the user requests both -S and
-G at the same time. Now that the pickaxe family also offers --find-object,
which looks slightly more different than the former two, let's add a check
that those are not used at the same time.

Signed-off-by: Stefan Beller <sbel...@google.com>
---
 diff.c             | 10 ++++++++++
 diffcore-pickaxe.c |  1 -
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/diff.c b/diff.c
index a872bdcac1..29973e78d6 100644
--- a/diff.c
+++ b/diff.c
@@ -4122,6 +4122,16 @@ void diff_setup_done(struct diff_options *options)
                count++;
        if (count > 1)
                die(_("--name-only, --name-status, --check and -s are mutually 
exclusive"));
+       count = 0;
+
+       if (options->pickaxe_opts & DIFF_PICKAXE_KIND_S)
+               count++;
+       if (options->pickaxe_opts & DIFF_PICKAXE_KIND_G)
+               count++;
+       if (options->pickaxe_opts & DIFF_PICKAXE_KIND_OBJFIND)
+               count++;
+       if (count > 1)
+               die(_("-G, -S, --find-object are mutually exclusive"));
 
        /*
         * Most of the time we can say "there are changes"
diff --git a/diffcore-pickaxe.c b/diffcore-pickaxe.c
index 72bb5a9514..239ce5122b 100644
--- a/diffcore-pickaxe.c
+++ b/diffcore-pickaxe.c
@@ -251,7 +251,6 @@ void diffcore_pickaxe(struct diff_options *o)
                }
        }
 
-       /* Might want to warn when both S and G are on; I don't care... */
        pickaxe(&diff_queued_diff, o, regexp, kws,
                (opts & DIFF_PICKAXE_KIND_G) ? diff_grep : has_changes);
 
-- 
2.15.1.620.gb9897f4670-goog

Reply via email to