]> git.ipfire.org Git - thirdparty/git.git/commit - t/t7810-grep.sh
grep: turn off gitlink detection for --no-index
authorJeff King <peff@peff.net>
Mon, 7 Mar 2016 15:51:21 +0000 (10:51 -0500)
committerJunio C Hamano <gitster@pobox.com>
Mon, 7 Mar 2016 20:27:28 +0000 (12:27 -0800)
commit85975c0c7f46aeb5010121959e38c339038758a7
tree61cb7d177427db9b252104efaa8392882ac6c04a
parent5735dc5a0df5de12b28237ff2c41df6df5f67b81
grep: turn off gitlink detection for --no-index

If we are running "git grep --no-index" outside of a git
repository, we behave roughly like "grep -r", examining all
files in the current directory and its subdirectories.
However, because we use fill_directory() to do the
recursion, it will skip over any directories which look like
sub-repositories.

For a normal git operation (like "git grep" in a repository)
this makes sense; we do not want to cross the boundary out
of our current repository into a submodule. But for
"--no-index" without a repository, we should look at all
files, including embedded repositories.

There is one exception, though: we probably should _not_
descend into ".git" directories. Doing so is inefficient and
unlikely to turn up useful hits.

This patch drops our use of dir.c's gitlink-detection, but
we do still avoid ".git". That makes us more like tools such
as "ack" or "ag", which also know to avoid cruft in .git.

As a bonus, this also drops our usage of the ref code
when we are outside of a repository, making the transition
to pluggable ref backends cleaner.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/grep.c
t/t7810-grep.sh