grep: Add --max-depth option.

It is useful to grep directories non-recursively, e.g. when one wants to
look for all files in the toplevel directory, but not in any subdirectory,
or in Documentation/, but not in Documentation/technical/.

This patch adds support for --max-depth <depth> option to git-grep. If it is
given, git-grep descends at most <depth> levels of directories below paths
specified on the command line.

Note that if path specified on command line contains wildcards, this option
makes no sense, e.g.

    $ git grep -l --max-depth 0 GNU -- 'contrib/*'

(note the quotes) will search all files in contrib/, even in
subdirectories, because '*' matches all files.

Documentation updates, bash-completion and simple test cases are also
provided.

Signed-off-by: Michał Kiedrowicz <michal.kiedrowicz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Michał Kiedrowicz
2009-07-22 19:52:15 +02:00
committed by Junio C Hamano
parent 2a679c7a31
commit a91f453f64
5 changed files with 103 additions and 11 deletions

1
grep.h
View File

@ -79,6 +79,7 @@ struct grep_opt {
int pathname;
int null_following_name;
int color;
int max_depth;
int funcname;
char color_match[COLOR_MAXLEN];
const char *color_external;