threads / bug / 10677

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

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

## tl;dr

3 messages between Nov 5, 2007 and Nov 6, 2007.

replies: 2people: 2as markdown or json

Martin Langhoff· Nov 5, 2007, 23:53 UTC · lore
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· Nov 6, 2007, 01:02 UTC · re: Martin Langhoff · lore

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

"Martin Langhoff" <martin.langhoff@gmail.com> writes:
Show 18 quoted lines
> 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· Nov 6, 2007, 02:00 UTC · re: Junio C Hamano · lore

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

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

← back to recent threads