grep: allow -E and -n to be turned on by default via configuration
Add two configration variables grep.extendedRegexp and grep.lineNumbers to allow the user to skip typing -E and -n on the command line, respectively. Scripts that are meant to be used by random users and/or in random repositories now have use -G and/or --no-line-number options as appropriately to override the settings in the repository or user's ~/.gitconfig settings. Just because the script didn't say "git grep -n" no longer guarantees that the output from the command will not have line numbers. Signed-off-by: Joe Ratterman <jratt0@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
61e8aaf621
commit
b22520a37c
@ -1098,6 +1098,12 @@ All gitcvs variables except for 'gitcvs.usecrlfattr' and
|
||||
is one of "ext" and "pserver") to make them apply only for the given
|
||||
access method.
|
||||
|
||||
grep.lineNumber::
|
||||
If set to true, enable '-n' option by default.
|
||||
|
||||
grep.extendedRegexp::
|
||||
If set to true, enable '--extended-regexp' option by default.
|
||||
|
||||
gui.commitmsgwidth::
|
||||
Defines how wide the commit message window is in the
|
||||
linkgit:git-gui[1]. "75" is the default.
|
||||
|
@ -31,6 +31,16 @@ Look for specified patterns in the tracked files in the work tree, blobs
|
||||
registered in the index file, or blobs in given tree objects.
|
||||
|
||||
|
||||
CONFIGURATION
|
||||
-------------
|
||||
|
||||
grep.lineNumber::
|
||||
If set to true, enable '-n' option by default.
|
||||
|
||||
grep.extendedRegexp::
|
||||
If set to true, enable '--extended-regexp' option by default.
|
||||
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
--cached::
|
||||
|
@ -302,6 +302,19 @@ static int grep_config(const char *var, const char *value, void *cb)
|
||||
default: return 0;
|
||||
}
|
||||
|
||||
if (!strcmp(var, "grep.extendedregexp")) {
|
||||
if (git_config_bool(var, value))
|
||||
opt->regflags |= REG_EXTENDED;
|
||||
else
|
||||
opt->regflags &= ~REG_EXTENDED;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!strcmp(var, "grep.linenumber")) {
|
||||
opt->linenum = git_config_bool(var, value);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!strcmp(var, "color.grep"))
|
||||
opt->color = git_config_colorbool(var, value, -1);
|
||||
else if (!strcmp(var, "color.grep.context"))
|
||||
|
@ -59,7 +59,29 @@ do
|
||||
echo ${HC}file:4:foo mmap bar_mmap
|
||||
echo ${HC}file:5:foo_mmap bar mmap baz
|
||||
} >expected &&
|
||||
git grep -n -w -e mmap $H >actual &&
|
||||
git -c grep.linenumber=false grep -n -w -e mmap $H >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success "grep -w $L" '
|
||||
{
|
||||
echo ${HC}file:1:foo mmap bar
|
||||
echo ${HC}file:3:foo_mmap bar mmap
|
||||
echo ${HC}file:4:foo mmap bar_mmap
|
||||
echo ${HC}file:5:foo_mmap bar mmap baz
|
||||
} >expected &&
|
||||
git -c grep.linenumber=true grep -w -e mmap $H >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success "grep -w $L" '
|
||||
{
|
||||
echo ${HC}file:foo mmap bar
|
||||
echo ${HC}file:foo_mmap bar mmap
|
||||
echo ${HC}file:foo mmap bar_mmap
|
||||
echo ${HC}file:foo_mmap bar mmap baz
|
||||
} >expected &&
|
||||
git -c grep.linenumber=true grep --no-line-number -w -e mmap $H >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user