Re: git grep -I bug
Jeremy O'Brien <obrien654j@gmail.com> writes:
Show 7 quoted lines
> I am running git version 1.6.1.2.309.g2ea3.
>
> When I use
>
> git grep -I "string_to_match"
>
> to ignore binary files in my grep, binary files are returned anyway.
One sanity check. What does 'git grep --cached -I "string_to_match"' do in that case?
If it works as expected but without --cached it doesn't, then I think the following patch will fix it.
-- >8 --
Subject: grep: pass -I (ignore binary) down to external grep
The external-grep codepath forgets to pass this option. Fix it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
builtin-grep.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git c/builtin-grep.c w/builtin-grep.c
index bebf15c..c799fdd 100644
--- c/builtin-grep.c
+++ w/builtin-grep.c
@@ -297,6 +297,8 @@ static int external_grep(struct grep_opt *opt, const char **paths, int cached)
push_arg("-l");
if (opt->unmatch_name_only)
push_arg("-L");
+ if (opt->binary == GREP_BINARY_NOMATCH)
+ push_arg("-I");
if (opt->null_following_name)
/* in GNU grep git's "-z" translates to "-Z" */
push_arg("-Z");