From: Junio C Hamano Date: Tue, 06 Nov 2007 01:02:24 GMT Subject: Re: [BUG] git grep broken on master - won't work when merging Message-ID: <7vlk9ckwyn.fsf@gitster.siamese.dyndns.org> In-Reply-To: <46a038f90711051553p6202cc62wfda6b45ff7769984@mail.gmail.com> "Martin Langhoff" 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)