# [BUG] git grep broken on master - won't work when merging

3 messages from 2007-11-05 to 2007-11-06. Participants: Martin Langhoff, Junio C Hamano.
Thread: https://gitlist.dev/t/10677

## Martin Langhoff, 2007-11-05 23:53

Subject: [BUG] git grep broken on master - won't work when merging
Message-ID: <46a038f90711051553p6202cc62wfda6b45ff7769984@mail.gmail.com>
URL: https://gitlist.dev/e/46a038f90711051553p6202cc62wfda6b45ff7769984%40mail.gmail.com

```
Strange behaviour of git grep on one of the projects I hack on...

  $ git --version
  git version 1.5.3.5.561.g140d

  $ git grep LOB lib
  fatal: insanely many options to grep

After a bit of head-scratching I realised I was in the middle of a
merge, with some unresolved paths in the lib directory. A bit of
testing shows that the unresolved index is probably the problem:

  $ git grep LOB lib
  fatal: insanely many options to grep

  # an unresolved file
  $ git grep  LOB lib/accesslib.php
  fatal: insanely many options to grep


  $ git grep --cached LOB lib
  (... expected grep output...)

  $ git reset --hard
  $ git grep LOB lib
  (... expected grep output...)

... not sure what the correct behaviour should be -- I guess the most
reasonable action would be to grep the files on disk for those
unresolved paths. In any case, the error message is insanely many
confusing to user! ;-)

Probably whitespace damaged...

diff --git a/builtin-grep.c b/builtin-grep.c
index c7b45c4..1831ef0 100644
--- a/builtin-grep.c
+++ b/builtin-grep.c
@@ -213,7 +213,7 @@ static int flush_grep(struct grep_opt *opt,
                 * arguments even for the call in the main loop.
                 */
                if (kept)
-                       die("insanely many options to grep");
+                       die("Unresolved index or too many options to grep");

                /*
                 * If we have two or more paths, we do not have to do


cheers,


martin

```

## Junio C Hamano, 2007-11-06 01:02

Subject: Re: [BUG] git grep broken on master - won't work when merging
Message-ID: <7vlk9ckwyn.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vlk9ckwyn.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <46a038f90711051553p6202cc62wfda6b45ff7769984@mail.gmail.com>

```
"Martin Langhoff" <martin.langhoff@gmail.com> writes:

> Strange behaviour of git grep on one of the projects I hack on...
>
>   $ git --version
>   git version 1.5.3.5.561.g140d
>
>   $ git grep LOB lib
>   fatal: insanely many options to grep
>
> After a bit of head-scratching I realised I was in the middle of a
> merge, with some unresolved paths in the lib directory. A bit of
> testing shows that the unresolved index is probably the problem:
>
>   $ git grep LOB lib
>   fatal: insanely many options to grep
>
>   # an unresolved file
>   $ git grep  LOB lib/accesslib.php
>   fatal: insanely many options to grep

I think 36f2587ffb6802cb38071510810f48cddfc4f34a (grep: do not
skip unmerged entries when grepping in the working tree.) is the
dud one.  Would this help?

diff --git a/builtin-grep.c b/builtin-grep.c
index c7b45c4..185876b 100644
--- a/builtin-grep.c
+++ b/builtin-grep.c
@@ -343,7 +343,7 @@ static int external_grep(struct grep_opt *opt, const char **paths, int cached)
 			memcpy(name + 2, ce->name, len + 1);
 		}
 		argv[argc++] = name;
-		if (argc < MAXARGS && !ce_stage(ce))
+		if (argc < MAXARGS)
 			continue;
 		status = flush_grep(opt, argc, nr, argv, &kept);
 		if (0 < status)

```

## Martin Langhoff, 2007-11-06 02:00

Subject: Re: [BUG] git grep broken on master - won't work when merging
Message-ID: <46a038f90711051800l41e51a68r3e0ff98a7ace433@mail.gmail.com>
URL: https://gitlist.dev/e/46a038f90711051800l41e51a68r3e0ff98a7ace433%40mail.gmail.com
In-Reply-To: <7vlk9ckwyn.fsf@gitster.siamese.dyndns.org>

```
On 11/6/07, Junio C Hamano <gitster@pobox.com> wrote:
> I think 36f2587ffb6802cb38071510810f48cddfc4f34a (grep: do not
> skip unmerged entries when grepping in the working tree.) is the
> dud one.  Would this help?

Works great here! Thanks!

cheers,


martin

```
