From: Jeff King Date: Tue, 14 Feb 2017 06:00:21 GMT Subject: [PATCH 0/7] grep rev/path parsing fixes Message-ID: <20170214060021.einv7372exbxa23z@sigill.intra.peff.net> In-Reply-To: <20170214012037.u2eg2n7mvteullcx@sigill.intra.peff.net> On Mon, Feb 13, 2017 at 08:20:37PM -0500, Jeff King wrote: > > If there is a repo and "foo" is a rev, the "--no-index or --untracked > > cannot be used with revs." error would occur. If there is a repo and > > "foo" is not a rev, this command would proceed as usual. If there is no > > repo, the "setup_git_env called without repository" error would occur. > > (This is my understanding from reading the code - I haven't tested it > > out.) > > Yes, it's easy to see that "git grep --no-index foo bar" outside of a > repo generates the same BUG. I suspect that "--no-index" should just > disable looking up revs entirely, even if we are actually in a > repository directory. I've fixed that, along with a few other bugs and cleanups. The complete series is below. Patch 2 is your (untouched) patch. My suggestions for your test are in patch 3, which can either remain on its own or be squashed in. [1/7]: grep: move thread initialization a little lower [2/7]: grep: do not unnecessarily query repo for "--" [3/7]: t7810: make "--no-index --" test more robust [4/7]: grep: re-order rev-parsing loop [5/7]: grep: fix "--" rev/pathspec disambiguation [6/7]: grep: avoid resolving revision names in --no-index case [7/7]: grep: do not diagnose misspelt revs with --no-index builtin/grep.c | 78 +++++++++++++++++++++++++++++++++++++++------------------ t/t7810-grep.sh | 66 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 119 insertions(+), 25 deletions(-) -Peff