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

[PATCH v4 3/8] log: add -P as a synonym for --perl-regexp

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Jun 1, 2017, 18:20 UTC
Message-ID
<20170601182056.31142-4-avarab@gmail.com>
In-Reply-To
<20170601182056.31142-1-avarab@gmail.com>

Add a short -P option as a synonym for the longer --perl-regexp, for consistency with the options the corresponding grep invocations accept.

This was intentionally omitted in commit 727b6fc3ed ("log --grep: accept --basic-regexp and --perl-regexp", 2012-10-03) for unspecified future use.

Make it consistent with "grep" rather than to keep it open for future use, and to avoid the confusion of -P meaning different things for grep & log, as is the case with the -G option.

As noted in the aforementioned commit the --basic-regexp option can't have a corresponding -G argument, as the log command already uses that for -G<regex>.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 Documentation/rev-list-options.txt |  1 +
 revision.c                         |  2 +-
 t/t4202-log.sh                     | 12 ++++++++++++
 3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt
index a46f70c2b1..9c44eae55d 100644
--- a/Documentation/rev-list-options.txt
+++ b/Documentation/rev-list-options.txt
@@ -91,6 +91,7 @@ endif::git-rev-list[]
 	Consider the limiting patterns to be fixed strings (don't interpret
 	pattern as a regular expression).
 
+-P::
 --perl-regexp::
 	Consider the limiting patterns to be Perl-compatible regular
 	expressions.
diff --git a/revision.c b/revision.c
index eb87dce316..14b598644c 100644
--- a/revision.c
+++ b/revision.c
@@ -1996,7 +1996,7 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
 		DIFF_OPT_SET(&revs->diffopt, PICKAXE_IGNORE_CASE);
 	} else if (!strcmp(arg, "--fixed-strings") || !strcmp(arg, "-F")) {
 		revs->grep_filter.pattern_type_option = GREP_PATTERN_TYPE_FIXED;
-	} else if (!strcmp(arg, "--perl-regexp")) {
+	} else if (!strcmp(arg, "--perl-regexp") || !strcmp(arg, "-P")) {
 		revs->grep_filter.pattern_type_option = GREP_PATTERN_TYPE_PCRE;
 	} else if (!strcmp(arg, "--all-match")) {
 		revs->grep_filter.all_match = 1;
diff --git a/t/t4202-log.sh b/t/t4202-log.sh
index 703da5a116..a4049ad678 100755
--- a/t/t4202-log.sh
+++ b/t/t4202-log.sh
@@ -404,8 +404,20 @@ test_expect_success 'log with various grep.patternType configurations & command-
 			--grep="(1|2)" >actual.fixed.short-arg &&
 		git log --pretty=tformat:%s -E \
 			--grep="\|2" >actual.extended.short-arg &&
+		if test_have_prereq PCRE
+		then
+			git log --pretty=tformat:%s -P \
+				--grep="[\d]\|" >actual.perl.short-arg
+		else
+			test_must_fail git log -P \
+				--grep="[\d]\|"
+		fi &&
 		test_cmp expect.fixed actual.fixed.short-arg &&
 		test_cmp expect.extended actual.extended.short-arg &&
+		if test_have_prereq PCRE
+		then
+			test_cmp expect.perl actual.perl.short-arg
+		fi &&
 
 		git log --pretty=tformat:%s --fixed-strings \
 			--grep="(1|2)" >actual.fixed.long-arg &&
-- 
2.13.0.303.g4ebf302169
Previous: Stefan BellerNext: Ævar Arnfjörð Bjarmason
Message 9 of 22 in “PCRE v2, PCRE v1 JIT, log -P & fixes”
  1. 0/8 PCRE v2, PCRE v1 JIT, log -P & fixesÆvar Arnfjörð Bjarmason, Jun 1, 2017
  2. 2/8 grep: skip pthreads overhead when using one threadÆvar Arnfjörð Bjarmason, Jun 1, 2017
  3. Stefan BellerJun 1, 2017
  4. Ævar Arnfjörð BjarmasonJun 1, 2017
  5. Ævar Arnfjörð BjarmasonJun 1, 2017
  6. Stefan BellerJun 1, 2017
  7. Ævar Arnfjörð BjarmasonJun 1, 2017
  8. Stefan BellerJun 1, 2017
  9. 3/8 log: add -P as a synonym for --perl-regexpÆvar Arnfjörð Bjarmason, Jun 1, 2017
  10. 1/8 grep: don't redundantly compile throwaway patterns under threadingÆvar Arnfjörð Bjarmason, Jun 1, 2017
  11. 4/8 grep: add support for the PCRE v1 JIT APIÆvar Arnfjörð Bjarmason, Jun 1, 2017
  12. 6/8 grep: un-break building with PCRE < 8.20Ævar Arnfjörð Bjarmason, Jun 1, 2017
  13. 7/8 grep: un-break building with PCRE >= 8.32 without --enable-jitÆvar Arnfjörð Bjarmason, Jun 1, 2017
  14. 8/8 grep: add support for PCRE v2Ævar Arnfjörð Bjarmason, Jun 1, 2017
  15. 5/8 grep: un-break building with PCRE < 8.32Ævar Arnfjörð Bjarmason, Jun 1, 2017
  16. Junio C HamanoJun 1, 2017
  17. Johannes SchindelinJun 2, 2017
  18. Ævar Arnfjörð BjarmasonJun 2, 2017
  19. Junio C HamanoJun 5, 2017
  20. Johannes SchindelinJun 7, 2017
  21. Ævar Arnfjörð BjarmasonJun 7, 2017
  22. Junio C HamanoJun 9, 2017

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.