Merge branch 'rs/grep-no-recursive'
Unlike "grep", "git grep" by default recurses to the whole tree. The command learned "git grep --recursive" option, so that "git grep --no-recursive" can serve as a synonym to setting the max-depth to 0. * rs/grep-no-recursive: grep: add -r/--[no-]recursive
This commit is contained in:
commit
9822b8f10d
@ -18,7 +18,7 @@ SYNOPSIS
|
||||
[(-O | --open-files-in-pager) [<pager>]]
|
||||
[-z | --null]
|
||||
[ -o | --only-matching ] [-c | --count] [--all-match] [-q | --quiet]
|
||||
[--max-depth <depth>]
|
||||
[--max-depth <depth>] [--[no-]recursive]
|
||||
[--color[=<when>] | --no-color]
|
||||
[--break] [--heading] [-p | --show-function]
|
||||
[-A <post-context>] [-B <pre-context>] [-C <context>]
|
||||
@ -119,11 +119,18 @@ OPTIONS
|
||||
|
||||
--max-depth <depth>::
|
||||
For each <pathspec> given on command line, descend at most <depth>
|
||||
levels of directories. A negative value means no limit.
|
||||
levels of directories. A value of -1 means no limit.
|
||||
This option is ignored if <pathspec> contains active wildcards.
|
||||
In other words if "a*" matches a directory named "a*",
|
||||
"*" is matched literally so --max-depth is still effective.
|
||||
|
||||
-r::
|
||||
--recursive::
|
||||
Same as `--max-depth=-1`; this is the default.
|
||||
|
||||
--no-recursive::
|
||||
Same as `--max-depth=0`.
|
||||
|
||||
-w::
|
||||
--word-regexp::
|
||||
Match the pattern only at word boundary (either begin at the
|
||||
|
@ -812,6 +812,8 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
|
||||
GREP_BINARY_NOMATCH),
|
||||
OPT_BOOL(0, "textconv", &opt.allow_textconv,
|
||||
N_("process binary files with textconv filters")),
|
||||
OPT_SET_INT('r', "recursive", &opt.max_depth,
|
||||
N_("search in subdirectories (default)"), -1),
|
||||
{ OPTION_INTEGER, 0, "max-depth", &opt.max_depth, N_("depth"),
|
||||
N_("descend at most <depth> levels"), PARSE_OPT_NONEG,
|
||||
NULL, 1 },
|
||||
|
@ -309,6 +309,8 @@ do
|
||||
echo ${HC}v:1:vvv
|
||||
} >expected &&
|
||||
git grep --max-depth -1 -n -e vvv $H >actual &&
|
||||
test_cmp expected actual &&
|
||||
git grep --recursive -n -e vvv $H >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
@ -317,6 +319,8 @@ do
|
||||
echo ${HC}v:1:vvv
|
||||
} >expected &&
|
||||
git grep --max-depth 0 -n -e vvv $H >actual &&
|
||||
test_cmp expected actual &&
|
||||
git grep --no-recursive -n -e vvv $H >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
@ -327,6 +331,8 @@ do
|
||||
echo ${HC}v:1:vvv
|
||||
} >expected &&
|
||||
git grep --max-depth 0 -n -e vvv $H -- "*" >actual &&
|
||||
test_cmp expected actual &&
|
||||
git grep --no-recursive -n -e vvv $H -- "*" >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
@ -344,6 +350,8 @@ do
|
||||
echo ${HC}t/v:1:vvv
|
||||
} >expected &&
|
||||
git grep --max-depth 0 -n -e vvv $H -- t >actual &&
|
||||
test_cmp expected actual &&
|
||||
git grep --no-recursive -n -e vvv $H -- t >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
@ -353,6 +361,8 @@ do
|
||||
echo ${HC}v:1:vvv
|
||||
} >expected &&
|
||||
git grep --max-depth 0 -n -e vvv $H -- . t >actual &&
|
||||
test_cmp expected actual &&
|
||||
git grep --no-recursive -n -e vvv $H -- . t >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
@ -362,6 +372,8 @@ do
|
||||
echo ${HC}v:1:vvv
|
||||
} >expected &&
|
||||
git grep --max-depth 0 -n -e vvv $H -- t . >actual &&
|
||||
test_cmp expected actual &&
|
||||
git grep --no-recursive -n -e vvv $H -- t . >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
test_expect_success "grep $L with grep.extendedRegexp=false" '
|
||||
|
Loading…
Reference in New Issue
Block a user