[PATCH] grep: clarify what `grep.patternType=default` means

Subsystems: documentation, the rest

STALE1712d

2 messages, 2 authors, 2021-12-05 · open the first message on its own page

[PATCH] grep: clarify what `grep.patternType=default` means

From: Junio C Hamano <hidden>
Date: 2021-11-29 22:12:52

Back in the days when the "return to the default matching behavior"
part was written in 84befcd0 (grep: add a grep.patternType
configuration setting, 2012-08-03), grep.extendedRegexp was the only
way to configure the behaviour since b22520a3 (grep: allow -E and -n
to be turned on by default via configuration, 2011-03-30).

It was understandable that we referred to the behaviour that honors
the older configuration variable as "the default matching"
behaviour.  It is fairly clear in its log message:

    When grep.patternType is set to a value other than "default", the
    grep.extendedRegexp setting is ignored. The value of "default" restores
    the current default behavior, including the grep.extendedRegexp
    behavior.

But when the paragraph is read in isolation by a new person who is
not aware of that backstory (which is the synonym for "most users"),
the "default matching behaviour" can be read as "how 'git grep'
behaves without any configuration variables or options", which is
"match the pattern as BRE".

Clarify what the passage means by elaborating what the phrase
"default matching behaviour" wanted to mean.

Signed-off-by: Junio C Hamano <redacted>
---

 * Whether the eventual deprecation of grep.extendedRegexp is a good
   idea, we'd need something like this to clarify what these two
   variables are meant to interact with each other first.

 Documentation/config/grep.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Documentation/config/grep.txt b/Documentation/config/grep.txt
index 44abe45a7c..72f5e03614 100644
--- a/Documentation/config/grep.txt
+++ b/Documentation/config/grep.txt
@@ -8,7 +8,8 @@ grep.patternType::
 	Set the default matching behavior. Using a value of 'basic', 'extended',
 	'fixed', or 'perl' will enable the `--basic-regexp`, `--extended-regexp`,
 	`--fixed-strings`, or `--perl-regexp` option accordingly, while the
-	value 'default' will return to the default matching behavior.
+	value 'default' will use the settings of `grep.extendedRegexp` option
+	to choose between `basic` and `extended`.
 
 grep.extendedRegexp::
 	If set to true, enable `--extended-regexp` option by default. This
-- 
2.34.1-251-g6783e24198

Re: [PATCH] grep: clarify what `grep.patternType=default` means

From: Johannes Altmanninger <hidden>
Date: 2021-12-05 13:33:59

On Mon, Nov 29, 2021 at 02:10:48PM -0800, Junio C Hamano wrote:
Back in the days when the "return to the default matching behavior"
part was written in 84befcd0 (grep: add a grep.patternType
configuration setting, 2012-08-03), grep.extendedRegexp was the only
way to configure the behaviour since b22520a3 (grep: allow -E and -n
to be turned on by default via configuration, 2011-03-30).
The 'the "return to the default matching behavior" part' is a forward
reference, so I tried this instead:

Commit 84befcd0 (grep: add a grep.patternType configuration setting,
2012-08-03) documented that grep.patternType=default falls back to the
"default matching behavior". Prior to that, grep.extendedRegexp was the only
way to configure the matching behavior (since b22520a3 (grep: allow -E and
-n to be turned on by default via configuration, 2011-03-30)).
It was understandable that we referred to the behaviour that honors
"It was" -> "It is"?
the older configuration variable as "the default matching"
behaviour.  It is fairly clear in its log message:
I guess %s/behaviour/behavior/
quoted hunk
    When grep.patternType is set to a value other than "default", the
    grep.extendedRegexp setting is ignored. The value of "default" restores
    the current default behavior, including the grep.extendedRegexp
    behavior.

But when the paragraph is read in isolation by a new person who is
not aware of that backstory (which is the synonym for "most users"),
the "default matching behaviour" can be read as "how 'git grep'
behaves without any configuration variables or options", which is
"match the pattern as BRE".

Clarify what the passage means by elaborating what the phrase
"default matching behaviour" wanted to mean.

Signed-off-by: Junio C Hamano <redacted>
---

 * Whether the eventual deprecation of grep.extendedRegexp is a good
   idea, we'd need something like this to clarify what these two
   variables are meant to interact with each other first.

 Documentation/config/grep.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Documentation/config/grep.txt b/Documentation/config/grep.txt
index 44abe45a7c..72f5e03614 100644
--- a/Documentation/config/grep.txt
+++ b/Documentation/config/grep.txt
@@ -8,7 +8,8 @@ grep.patternType::
 	Set the default matching behavior. Using a value of 'basic', 'extended',
 	'fixed', or 'perl' will enable the `--basic-regexp`, `--extended-regexp`,
 	`--fixed-strings`, or `--perl-regexp` option accordingly, while the
-	value 'default' will return to the default matching behavior.
+	value 'default' will use the settings of `grep.extendedRegexp` option
+	to choose between `basic` and `extended`.
Yes, much better.
Maybe "settings" -> "value". Probably subjective but plural sounds weird
since grep.extendedRegexp is just one bit.

Also this introduces a local inconsistency: above we write 'basic' and here `basic`.
 
 grep.extendedRegexp::
 	If set to true, enable `--extended-regexp` option by default. This
-- 
2.34.1-251-g6783e24198
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help