# Bug report: git grep seems to use the wrong .gitattributes when invoked in a subdirectory

2 messages from 2013-05-23 to 2013-05-23. Participants: Joel Kaasinen, René Scharfe.
Thread: https://gitlist.dev/t/33907

## Joel Kaasinen, 2013-05-23 12:44

Subject: Bug report: git grep seems to use the wrong .gitattributes when invoked in a subdirectory
Message-ID: <CAK=EYX51G57borL_Hy2XzqJVML4wmAgOCBPwFLa+miDDY30O7Q@mail.gmail.com>
URL: https://gitlist.dev/e/CAK%3DEYX51G57borL_Hy2XzqJVML4wmAgOCBPwFLa%2BmiDDY30O7Q%40mail.gmail.com

```
Greetings,

I bumped into a problem where git grep thinks files in repo/a/data are
binary files when it is invoked from repo/a and
repo/data/.gitattributes contains "* binary".

I can reproduce this on 1.7.9.5 and 1.7.10.4. Unfortunately I don't
have a newer version at hand.

How to reproduce:

[pseudo:~/tmp]% git --version
git version 1.7.10.4
[pseudo:~/tmp]% git init git-test
Initialized empty Git repository in /home/opqdonut/tmp/git-test/.git/
[pseudo:~/tmp]% cd git-test
[pseudo:~/tmp/git-test:master()]% mkdir -p a/data
[pseudo:~/tmp/git-test:master()]% mkdir data
[pseudo:~/tmp/git-test:master()]% echo '* binary' > data/.gitattributes
[pseudo:~/tmp/git-test:master()]% echo foo > a/data/foo
[pseudo:~/tmp/git-test:master()]% git add -A
[pseudo:~/tmp/git-test:master()]% git commit -m "foo"
[master (root-commit) 20fafbb] foo
 2 files changed, 1 insertion(+)
 create mode 100644 a/data/foo
 create mode 100644 data/.gitattributes
[pseudo:~/tmp/git-test:master()]% git grep foo
a/data/foo:foo
[pseudo:~/tmp/git-test:master()]% cd a
[pseudo:~/tmp/git-test/a:master()]% git grep foo
Binary file data/foo matches

(Please CC me on replies, I'm not subscribed to the list.)

--
Joel Kaasinen
joel.kaasinen@gmail.com

```

## René Scharfe, 2013-05-23 15:49

Subject: Re: Bug report: git grep seems to use the wrong .gitattributes when invoked in a subdirectory
Message-ID: <519E3A8F.9070600@lsrfire.ath.cx>
URL: https://gitlist.dev/e/519E3A8F.9070600%40lsrfire.ath.cx
In-Reply-To: <CAK=EYX51G57borL_Hy2XzqJVML4wmAgOCBPwFLa+miDDY30O7Q@mail.gmail.com>

```
Am 23.05.2013 14:44, schrieb Joel Kaasinen:
> [pseudo:~/tmp]% git --version
> git version 1.7.10.4
> [pseudo:~/tmp]% git init git-test
> Initialized empty Git repository in/home/opqdonut/tmp/git-test/.git/
> [pseudo:~/tmp]% cd git-test
> [pseudo:~/tmp/git-test:master()]% mkdir -p a/data
> [pseudo:~/tmp/git-test:master()]% mkdir data
> [pseudo:~/tmp/git-test:master()]% echo '* binary' > data/.gitattributes
> [pseudo:~/tmp/git-test:master()]% echo foo > a/data/foo
> [pseudo:~/tmp/git-test:master()]% git add -A
> [pseudo:~/tmp/git-test:master()]% git commit -m "foo"
> [master (root-commit) 20fafbb] foo
>   2 files changed, 1 insertion(+)
>   create mode 100644 a/data/foo
>   create mode 100644 data/.gitattributes
> [pseudo:~/tmp/git-test:master()]% git grep foo
> a/data/foo:foo
> [pseudo:~/tmp/git-test:master()]% cd a
> [pseudo:~/tmp/git-test/a:master()]% git grep foo
> Binary file data/foo matches

Just checked, with git 1.8.2.3 the last command shows a matching line.

The issue has probably been fixed by 55c6168 (grep: stop looking at 
random places for .gitattributes).  The lowest release with that patch 
is git 1.8.0.1.

René

```
