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

Re: git grep: search whole tree by default?

From
Jeff King <peff@peff.net>
Date
Oct 25, 2013, 04:37 UTC
Message-ID
<20131025043717.GC11810@sigill.intra.peff.net>
In-Reply-To
<xmqqd2muo3sz.fsf@gitster.dls.corp.google.com>
On Thu, Oct 24, 2013 at 12:40:44PM -0700, Junio C Hamano wrote:
Show 9 quoted lines
> Jeff King <peff@peff.net> writes:
> 
> > That would also provide people who do not like the change of default an
> > escape hatch to keep the current behavior. And I do not think scripted
> > use will be inconvenienced; they will already have to use "." or ":/" to
> > be explicit (if they care) since the behavior is changing.
> 
> There is a big difference between "scripted use will have an escape
> hatch" and "scripted use will not be inconvenienced".

I think my communication may have been muddled in transit. What I meant regarding inconvenienced was "not any more so than by simply changing the behavior in the first place, since scripts already will need to start becoming explicit due to the behavior change".

And for the "escape hatch", I did not mean for scripts. I actually meant for users who do not like the extra typing and complain "stupid git, I always want '.'; you used to do what I want and now you do not".

> Even if we ignore the "helping your colleague at her terminal", cf.
> 
>     http://thread.gmane.org/gmane.comp.version-control.git/133570/focus=133683

FWIW, I have never agreed with that line of reasoning. I was going to explain why, but I see that I already did in response to the article you linked. :)

Show 6 quoted lines
> issue for now, adding a new configuration variable from day one
> makes the transition of scripts somewhat worse, I am afraid.  Doing
> so robs us a way to add such an annoying warning to help people
> foresee problems in their existing scripts before the default
> changes (the configuration presumably will disable the "this command
> line will behave differently after the default changes" warning).

If you want to have an annoying warning, why not consider the config a tristate? Do X or do Y, or if unset, do X with an annoying warning (which will switch to Y in the future). That does not help a user who sets the variable after seeing the warning the first time, then later runs a script that silently chooses the wrong behavior.

But neither does a warning that is squelched by advice.*, which the user will also set soon after seeing it.

The only way to hit those scripts is to yell at the user anytime the appropriate command-line override is not selected, with no way to turn it off. That's what we're doing now with "git add". I think people find it a little annoying. But perhaps it is the least of all evils.

Anyway, I have said my piece, and I think we are on the same page with the tradeoffs (what they are, though we may value them differently). I do not care that strongly about the config option these days; as I said, it was something I would have used in certain workflows, but I do not foresee myself even setting it these days. So I am willing to forego it if there are concerns it will make things worse.

-Peff
Previous: David AguilarNext: Duy Nguyen
Message 13 of 14 in “git grep: search whole tree by default?”
  1. Piotr KrukowieckiOct 23, 2013
  2. Matthieu MoyOct 23, 2013
  3. Junio C HamanoOct 23, 2013
  4. Jed BrownOct 23, 2013
  5. Junio C HamanoOct 23, 2013
  6. Jed BrownOct 23, 2013
  7. Junio C HamanoOct 23, 2013
  8. David AguilarOct 24, 2013
  9. Matthieu MoyOct 23, 2013
  10. Jeff KingOct 24, 2013
  11. Junio C HamanoOct 24, 2013
  12. David AguilarOct 25, 2013
  13. Jeff KingOct 25, 2013
  14. Duy NguyenOct 25, 2013

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.