git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 3/3] builtin/grep: allow implicit --no-index

From
Jeff King <peff@peff.net>
Date
Jan 11, 2016, 17:59 UTC
Message-ID
<20160111175919.GA11724@sigill.intra.peff.net>
In-Reply-To
<20160111174817.GC10612@hank>
On Mon, Jan 11, 2016 at 06:48:17PM +0100, Thomas Gummerer wrote:
Show 13 quoted lines
> > "We run 'git grep' in random places and relied on it to fail when
> > run in somewhere not under control of Git." feels so flawed at
> > multiple levels that I doubt it deserves to be kept working.  For
> > one thing, "git grep" is not the way to tell something is under
> > control of Git (rev-parse would be a better thing for scriptor to
> > use).  For another, how would such a script tell between "not a
> > git repository" and there was no hits?
> 
> I agree that scripts don't deserve to be kept working in that case.
> What about a user though who accidentally runs git grep outside of a
> repository, and is usually warned by git failing quickly, whereas with
> the changed behavior some time might go by until the user realizes the
> error.  Not sure if we want to support this use case or not?

Yeah, I don't think git would be _wrong_ here, but I could certainly see it being annoying. Several times a week I probably run `git grep` in my home directory, and after seeing its error, realize "oops, I meant to `cd git`".

Having it spew nonsense results, and/or appear to hang while it literally reads every file on my disk would be at least a minor annoyance.

But I don't think any kind of command-line flag would help that; I'm not going to start typing "git grep --use-index=never" for every invocation. I think the only sensible mitigation would be a config option, so that people who rarely use `--no-index` (and are OK with having to specify it) do not get punished by false positives.

I dunno. Maybe I would find the new behavior so useful I would be OK with the occasional false-positive. But when we make a release with the new behavior and somebody _does_ complain, it sure would be nice not to have to say "deal with it; it's the new behavior and there is no escape hatch".

-Peff
Previous: Thomas GummererNext: Junio C Hamano
Message 10 of 32 in “Implicitly use --no-index if git grep is used outside of repo”
  1. 0/3 Implicitly use --no-index if git grep is used outside of repoThomas Gummerer, Jan 10, 2016
  2. 1/3 t7810: correct --no-index testThomas Gummerer, Jan 10, 2016
  3. 2/3 builtin/grep: rename use_index to no_indexThomas Gummerer, Jan 10, 2016
  4. Junio C HamanoJan 11, 2016
  5. 3/3 builtin/grep: allow implicit --no-indexThomas Gummerer, Jan 10, 2016
  6. Duy NguyenJan 11, 2016
  7. Thomas GummererJan 11, 2016
  8. Junio C HamanoJan 11, 2016
  9. Thomas GummererJan 11, 2016
  10. Jeff KingJan 11, 2016
  11. Junio C HamanoJan 11, 2016
  12. Eric SunshineJan 11, 2016
  13. Thomas GummererJan 11, 2016
  14. Junio C HamanoJan 11, 2016
  15. Thomas GummererJan 11, 2016
  16. Junio C HamanoJan 11, 2016
  17. Junio C HamanoJan 11, 2016
  18. Thomas GummererJan 11, 2016
  19. 0/3 Introduce a --use-index command line argument in git grepThomas Gummerer, Jan 11, 2016
  20. 1/3 t7810: correct --no-index testThomas Gummerer, Jan 11, 2016
  21. 2/3 builtin/grep: rename use_index to no_indexThomas Gummerer, Jan 11, 2016
  22. 3/3 builtin/grep: introduce --use-index argumentThomas Gummerer, Jan 11, 2016
  23. 0/2 grep: add fallbackToNoIndex config optionThomas Gummerer, Jan 11, 2016
  24. 1/2 t7810: correct --no-index testThomas Gummerer, Jan 11, 2016
  25. 2/2 builtin/grep: add grep.fallbackToNoIndex configThomas Gummerer, Jan 11, 2016
  26. Jeff KingJan 11, 2016
  27. Thomas GummererJan 11, 2016
  28. 0/2 grep: add fallbackToNoIndex config optionThomas Gummerer, Jan 12, 2016
  29. 1/2 t7810: correct --no-index testThomas Gummerer, Jan 12, 2016
  30. 2/2 builtin/grep: add grep.fallbackToNoIndex configThomas Gummerer, Jan 12, 2016
  31. Jeff KingJan 12, 2016
  32. Thomas GummererJan 12, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.