git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 9/9] grep: skip files outside sparse checkout area

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Oct 1, 2008, 04:04 UTC
Message-ID
<1222833849-22129-10-git-send-email-pclouds@gmail.com>
In-Reply-To
<1222833849-22129-9-git-send-email-pclouds@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 Documentation/git-grep.txt |    4 +++-
 builtin-grep.c             |    7 ++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/Documentation/git-grep.txt b/Documentation/git-grep.txt
index fa4d133..ee359c9 100644
--- a/Documentation/git-grep.txt
+++ b/Documentation/git-grep.txt
@@ -24,7 +24,9 @@ SYNOPSIS
 DESCRIPTION
 -----------
 Look for specified patterns in the working tree files, blobs
-registered in the index file, or given tree objects.
+registered in the index file, or given tree objects. By default
+it will search in the working tree files. When in sparse checkout
+mode, it only searches checked-out files.
 
 
 OPTIONS
diff --git a/builtin-grep.c b/builtin-grep.c
index 3a51662..d5507d7 100644
--- a/builtin-grep.c
+++ b/builtin-grep.c
@@ -343,6 +343,8 @@ static int external_grep(struct grep_opt *opt, const char **paths, int cached)
 			continue;
 		if (!pathspec_matches(paths, ce->name))
 			continue;
+		if (ce_no_checkout(ce))
+			continue;
 		name = ce->name;
 		if (name[0] == '-') {
 			int len = ce_namelen(ce);
@@ -404,8 +406,11 @@ static int grep_cache(struct grep_opt *opt, const char **paths, int cached)
 				continue;
 			hit |= grep_sha1(opt, ce->sha1, ce->name, 0);
 		}
-		else
+		else {
+			if (ce_no_checkout(ce))
+				continue;
 			hit |= grep_file(opt, ce->name);
+		}
 		if (ce_stage(ce)) {
 			do {
 				nr++;
-- 
1.6.0.2.488.gf604a
Previous: Nguyễn Thái Ngọc DuyNext: Jeff King
Message 10 of 23 in “Sparse checkout (first half)”
  1. 0/9 Sparse checkout (first half)Nguyễn Thái Ngọc Duy, Oct 1, 2008
  2. 1/9 Extend index to save more flagsNguyễn Thái Ngọc Duy, Oct 1, 2008
  3. 2/9 Introduce CE_NO_CHECKOUT bitNguyễn Thái Ngọc Duy, Oct 1, 2008
  4. 3/9 ls-files: add options to support sparse checkoutNguyễn Thái Ngọc Duy, Oct 1, 2008
  5. 4/9 update-index: refactor mark_valid() in preparation for new optionsNguyễn Thái Ngọc Duy, Oct 1, 2008
  6. 5/9 update-index: add --checkout/--no-checkout to update CE_NO_CHECKOUT bitNguyễn Thái Ngọc Duy, Oct 1, 2008
  7. 6/9 ls-files: Add tests for --sparse and friendsNguyễn Thái Ngọc Duy, Oct 1, 2008
  8. 7/9 Prevent diff machinery from examining worktree outside sparse checkoutNguyễn Thái Ngọc Duy, Oct 1, 2008
  9. 8/9 checkout_entry(): CE_NO_CHECKOUT on checked out entries.Nguyễn Thái Ngọc Duy, Oct 1, 2008
  10. 9/9 grep: skip files outside sparse checkout areaNguyễn Thái Ngọc Duy, Oct 1, 2008
  11. Jeff KingNov 18, 2008
  12. Junio C HamanoNov 18, 2008
  13. Junio C HamanoNov 19, 2008
  14. Jeff KingNov 19, 2008
  15. Nguyen Thai Ngoc DuyNov 20, 2008
  16. Jeff KingNov 20, 2008
  17. Nguyen Thai Ngoc DuyNov 20, 2008
  18. Junio C HamanoNov 20, 2008
  19. Santi BéjarOct 1, 2008
  20. Santi BéjarOct 1, 2008
  21. Nguyen Thai Ngoc DuyOct 1, 2008
  22. Santi BéjarOct 1, 2008
  23. Santi BéjarOct 2, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.