summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2021-02-26 00:43:31 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-02-26 00:43:31 (GMT)
commit628c13cceed408526df39dbbd4a0d00bc4f34803 (patch)
tree64f99803d922d553df1effa6a1ddb7780da61c99 /builtin
parent3c8e6dda21be5514c7d916604a6bcfd117c8b6ef (diff)
parent42d906bec48c95d66cb669ee41ce04330f74a98b (diff)
downloadgit-628c13cceed408526df39dbbd4a0d00bc4f34803.zip
git-628c13cceed408526df39dbbd4a0d00bc4f34803.tar.gz
git-628c13cceed408526df39dbbd4a0d00bc4f34803.tar.bz2
Merge branch 'mt/grep-sparse-checkout'
"git grep" has been tweaked to be limited to the sparse checkout paths. * mt/grep-sparse-checkout: grep: honor sparse-checkout on working tree searches
Diffstat (limited to 'builtin')
-rw-r--r--builtin/grep.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/builtin/grep.c b/builtin/grep.c
index e348e6b..4e91a25 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -506,6 +506,10 @@ static int grep_cache(struct grep_opt *opt,
for (nr = 0; nr < repo->index->cache_nr; nr++) {
const struct cache_entry *ce = repo->index->cache[nr];
+
+ if (!cached && ce_skip_worktree(ce))
+ continue;
+
strbuf_setlen(&name, name_base_len);
strbuf_addstr(&name, ce->name);
@@ -518,8 +522,7 @@ static int grep_cache(struct grep_opt *opt,
* cache entry are identical, even if worktree file has
* been modified, so use cache version instead
*/
- if (cached || (ce->ce_flags & CE_VALID) ||
- ce_skip_worktree(ce)) {
+ if (cached || (ce->ce_flags & CE_VALID)) {
if (ce_stage(ce) || ce_intent_to_add(ce))
continue;
hit |= grep_oid(opt, &ce->oid, name.buf,