git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 5/5] diff: properly error out when combining multiple pickaxe options

From
Stefan Beller <sbeller@google.com>
Date
Jan 3, 2018, 00:46 UTC
Message-ID
<20180103004624.222528-6-sbeller@google.com>
In-Reply-To
<20180103004624.222528-1-sbeller@google.com>

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 <sbeller@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
Previous: Stefan BellerNext: Jacob Keller
Message 7 of 19 in “pickaxe refactorings and a new mode to find blobs (WAS: diffcore: add a pickaxe option to find a specific blob)”
  1. 0/5 pickaxe refactorings and a new mode to find blobs (WAS: diffcore: add a pickaxe option to find a specific blob)Stefan Beller, Jan 3, 2018
  2. 1/5 diff.h: Make pickaxe_opts an unsigned bit fieldStefan Beller, Jan 3, 2018
  3. Junio C HamanoJan 3, 2018
  4. 2/5 diff: migrate diff_flags.pickaxe_ignore_case to a pickaxe_opts bitStefan Beller, Jan 3, 2018
  5. 4/5 diffcore: add a pickaxe option to find a specific blobStefan Beller, Jan 3, 2018
  6. 4/5 diffcore: add a pickaxe option to find a specific blobStefan Beller, Jan 3, 2018
  7. 5/5 diff: properly error out when combining multiple pickaxe optionsStefan Beller, Jan 3, 2018
  8. Jacob KellerJan 3, 2018
  9. Junio C HamanoJan 3, 2018
  10. Stefan BellerJan 3, 2018
  11. 3/5 diff: introduce DIFF_PICKAXE_KINDS_MASKStefan Beller, Jan 3, 2018
  12. Junio C HamanoJan 3, 2018
  13. 0/6 pickaxe refactorings and a new mode to find blobs (WAS: diffcore: add a pickaxe option to find a specific blob)Stefan Beller, Jan 4, 2018
  14. 1/6 diff.h: Make pickaxe_opts an unsigned bit fieldStefan Beller, Jan 4, 2018
  15. 3/6 diff: introduce DIFF_PICKAXE_KINDS_MASKStefan Beller, Jan 4, 2018
  16. 4/6 diffcore: add a pickaxe option to find a specific blobStefan Beller, Jan 4, 2018
  17. 5/6 diff: properly error out when combining multiple pickaxe optionsStefan Beller, Jan 4, 2018
  18. 2/6 diff: migrate diff_flags.pickaxe_ignore_case to a pickaxe_opts bitStefan Beller, Jan 4, 2018
  19. 6/6 diff: use HAS_MULTI_BITS instead of counting bits manuallyStefan Beller, Jan 4, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.