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

Re: [PATCH v2 2/2] pickaxe: allow -i to search in patch case-insensitively

From
Jeff King <peff@peff.net>
Date
Feb 29, 2012, 09:18 UTC
Message-ID
<20120229091855.GE14181@sigill.intra.peff.net>
In-Reply-To
<7vy5rmt3w8.fsf@alter.siamese.dyndns.org>
On Wed, Feb 29, 2012 at 12:55:35AM -0800, Junio C Hamano wrote:
Show 10 quoted lines
> > I can't imagine anybody would want to have different case-sensitivity
> > options for grepping the commit message versus pickaxe. But even if they
> > do, and we later add options to control them individually, we would
> > still want the short-and-sweet "-i" to cover the common case of setting
> > both. So I think the approach is good.
> 
> What you didn't read in the above is that the devilq around "-i" is not in
> the case insensitivity switch between log-part grep (--grep/--author) and
> patch part grep (-S/-G), but how it interacts with generating the patch
> part case insensitively (i.e. "log -p --ignore-case", which is also "-i").

Hmm. So there are actually three potential options to flip. However, I think the reasoning above is still sound. We could later split --regexp-ignore-case into two sub-options if we wanted (but like I said, I doubt anybody will want that; I was more concerned with making sure that if somebody _does_ want it, we have not painted ourselves into a corner).

Show 9 quoted lines
> You can see what I decided to do in an evil merge in 'pu'.
> 
> In short,
> 
>   * The short-and-sweet "-i" means both --regexp-ignore-case (grep) and
>     --ignore-case (diff); and
> 
>   * The long-hand can be used to ask for case
>     insensitive grep but case sensitive patch, or vice versa.

Yes, the evil merge looks sane, assuming both topics implement the desired behavior.

I am a little dubious of the decision in jc/diff-ignore-case to have "-i" imply "--ignore-case". For "git diff", it makes perfect sense. But for "git log", it feels wrong. Ignoring case for the regexps is very common, and ignoring case for the diffs is uncommon (it is, after all, a feature we have gone many years without, and I don't remember anyone bringing it up until recently).

As a user, I would be surprised that something common like "git log --author=junio -i -p" would change diff generation between versions of git. It's probably not a huge regression, as patches which actually look different with --ignore-case are relatively rare, so you are unlikely to see any difference if you trigger it accidentally. But that just argues to me that it is a feature that one would want to turn on explicitly, anyway.

-Peff
Previous: Junio C HamanoNext: Thomas Rast
Message 8 of 10 in “"log --regexp-ignore-case -S/-G<string>"”
  1. 0/2 "log --regexp-ignore-case -S/-G<string>"Junio C Hamano, Feb 29, 2012
  2. 1/2 grep: use static trans-case tableJunio C Hamano, Feb 29, 2012
  3. Jeff KingFeb 29, 2012
  4. Junio C HamanoFeb 29, 2012
  5. 2/2 pickaxe: allow -i to search in patch case-insensitivelyJunio C Hamano, Feb 29, 2012
  6. Jeff KingFeb 29, 2012
  7. Junio C HamanoFeb 29, 2012
  8. Jeff KingFeb 29, 2012
  9. Thomas RastFeb 29, 2012
  10. Junio C HamanoFeb 29, 2012

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.