threads / patch / 36200

patchAdd grep.fullName config variable

Subject: [PATCH] Add grep.fullName config variable

## tl;dr

7 messages between Mar 17, 2014 and Mar 18, 2014. Diffs are folded; open one to read it.

replies: 6people: 2as markdown or json

Andreas Schwab· Mar 17, 2014, 19:16 UTC · lore
This configuration variable sets the default for the --full-name option.
Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
---
 Documentation/git-grep.txt | 3 +++
 grep.c                     | 5 +++++
 2 files changed, 8 insertions(+)
Show changes to 2 files +8 −0

Documentation/git-grep.txt, grep.c

diff --git a/Documentation/git-grep.txt b/Documentation/git-grep.txt
index f837334..31811f1 100644
--- a/Documentation/git-grep.txt
+++ b/Documentation/git-grep.txt
@@ -53,6 +53,9 @@ grep.extendedRegexp::
 	option is ignored when the 'grep.patternType' option is set to a value
 	other than 'default'.
 
+grep.fullName::
+	If set to true, enable '--full-name' option by default.
+
 
 OPTIONS
 -------
diff --git a/grep.c b/grep.c
index c668034..ece04bf 100644
--- a/grep.c
+++ b/grep.c
@@ -86,6 +86,11 @@ int grep_config(const char *var, const char *value, void *cb)
 		return 0;
 	}
 
+	if (!strcmp(var, "grep.fullname")) {
+		opt->relative = !git_config_bool(var, value);
+		return 0;
+	}
+
 	if (!strcmp(var, "color.grep"))
 		opt->color = git_config_colorbool(var, value);
 	else if (!strcmp(var, "color.grep.context"))
-- 
1.9.0

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Junio C Hamano· Mar 17, 2014, 22:21 UTC · re: Andreas Schwab · lore

Re: [PATCH] Add grep.fullName config variable

Andreas Schwab <schwab@linux-m68k.org> writes:
> This configuration variable sets the default for the --full-name option.
>
> Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
> ---

Would this change break Porcelains (e.g. Emacs modes) and force them to be updated to explicitly pass --no-full-name to unbreak them?

Show 36 quoted lines
>  Documentation/git-grep.txt | 3 +++
>  grep.c                     | 5 +++++
>  2 files changed, 8 insertions(+)
>
> diff --git a/Documentation/git-grep.txt b/Documentation/git-grep.txt
> index f837334..31811f1 100644
> --- a/Documentation/git-grep.txt
> +++ b/Documentation/git-grep.txt
> @@ -53,6 +53,9 @@ grep.extendedRegexp::
>  	option is ignored when the 'grep.patternType' option is set to a value
>  	other than 'default'.
>  
> +grep.fullName::
> +	If set to true, enable '--full-name' option by default.
> +
>  
>  OPTIONS
>  -------
> diff --git a/grep.c b/grep.c
> index c668034..ece04bf 100644
> --- a/grep.c
> +++ b/grep.c
> @@ -86,6 +86,11 @@ int grep_config(const char *var, const char *value, void *cb)
>  		return 0;
>  	}
>  
> +	if (!strcmp(var, "grep.fullname")) {
> +		opt->relative = !git_config_bool(var, value);
> +		return 0;
> +	}
> +
>  	if (!strcmp(var, "color.grep"))
>  		opt->color = git_config_colorbool(var, value);
>  	else if (!strcmp(var, "color.grep.context"))
> -- 
> 1.9.0
Andreas Schwab· Mar 18, 2014, 10:16 UTC · re: Junio C Hamano · lore

Re: [PATCH] Add grep.fullName config variable

Junio C Hamano <gitster@pobox.com> writes:
Show 9 quoted lines
> Andreas Schwab <schwab@linux-m68k.org> writes:
>
>> This configuration variable sets the default for the --full-name option.
>>
>> Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
>> ---
>
> Would this change break Porcelains (e.g. Emacs modes) and force them
> to be updated to explicitly pass --no-full-name to unbreak them?

Yes, that would be required. On the other hand, currently it is impossible to cut-n-paste a file name without --full-name, since the pager is always started in top-level. Perhaps it is better to fix the latter?

Andreas.
-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Junio C Hamano· Mar 18, 2014, 18:39 UTC · re: Andreas Schwab · lore

Re: [PATCH] Add grep.fullName config variable

Andreas Schwab <schwab@linux-m68k.org> writes:
> Yes, that would be required.  On the other hand, currently it is
> impossible to cut-n-paste a file name without --full-name, since the
> pager is always started in top-level.  Perhaps it is better to fix the
> latter?

So far we never cared where the pager runs, but as a principle, I think it would be nice if we run it in the original subdirectory, not at the top of the working tree (unless we have to bend backwards to make the codepath involved too ugly, that is).

Don't we have the exact same issue for the editor, by the way? Shouldn't we be running it in the original subdirectory as well?

Andreas Schwab· Mar 18, 2014, 19:51 UTC · re: Junio C Hamano · lore

Re: [PATCH] Add grep.fullName config variable

Junio C Hamano <gitster@pobox.com> writes:
> Don't we have the exact same issue for the editor, by the way?
> Shouldn't we be running it in the original subdirectory as well?
It's called with an absolute name, so it shouldn't care.
Andreas.
-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Junio C Hamano· Mar 18, 2014, 20:16 UTC · re: Andreas Schwab · lore

Re: [PATCH] Add grep.fullName config variable

Andreas Schwab <schwab@linux-m68k.org> writes:
Show 6 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
>
>> Don't we have the exact same issue for the editor, by the way?
>> Shouldn't we be running it in the original subdirectory as well?
>
> It's called with an absolute name, so it shouldn't care.

But we should not have to call with absolute paths when a short and sweet pathname relative to the user's current directory. That is the primary point of my comment.

Andreas Schwab· Mar 18, 2014, 20:01 UTC · re: Andreas Schwab · lore

Re: [PATCH] Add grep.fullName config variable

Andreas Schwab <schwab@linux-m68k.org> writes:
Show 16 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
>
>> Andreas Schwab <schwab@linux-m68k.org> writes:
>>
>>> This configuration variable sets the default for the --full-name option.
>>>
>>> Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
>>> ---
>>
>> Would this change break Porcelains (e.g. Emacs modes) and force them
>> to be updated to explicitly pass --no-full-name to unbreak them?
>
> Yes, that would be required.  On the other hand, currently it is
> impossible to cut-n-paste a file name without --full-name, since the
> pager is always started in top-level.  Perhaps it is better to fix the
> latter?

On the third hand, git grep isn't plumbing, so variation of output is to be expected? We already have grep.lineNumber and grep.patternType / grep.extendedRegexp (vc-git-grep uses -n itself, but does not protect against grep.patternType).

Andreas.
-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

← back to recent threads