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

Re: Long names for `git log -S` and `git log -G`

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 19, 2024, 03:52 UTC
Message-ID
<xmqqo72bev71.fsf@gitster.g>
In-Reply-To
<24458598-ebbe-41fc-8517-457fa65ed481@gmail.com>
Illia Bobyr <illia.bobyr@gmail.com> writes:
Show 5 quoted lines
> Also,`diffcore` docs says:
>
>> "-G<regular-expression>" (mnemonic: grep)
>
> I was thinking of `--pickaxe` for `-S` and `--grep` for `-G`.

In the context of "git diff", calling "-G" "--grep" would be OK, but in the context of "git log", there is "--grep" already, so that won't fly.

> `--pickaxe-grep` for `-G` seems like a reasonable alternative name for `-G`.

That is probably OK (even though "-G" is not exactly what the pickaxe machinery wants to do; "--grep-in-patch" might be closer to the intent).

> Not sure what would be a reasonably short alternative for `-S`.
> `--pickaxe-occurance-change` seems too long, and might not be as clear.
> `--pickaxe-occurance-count-change` is just way too long.

Giving a tool a meaningful name is an excellent idea. If the meaningful name guides users to the right way to use the tool, it would be ideal. Which means that to name it right, you'd need to know what it exactly is for.

The -S feature was written to become one of the building blocks of Linus's "clearly superior algorithm", described in [1]. Linus talks about "where did this _line_ come from?", but the algorithm is more generally about a block of code. The expected use case is for -S to be fed sufficiently unique block of text so that we can efficiently detect the transition of occurence count from 1 (because wee start from sufficiently unique block of code) down to 0 (which is the boundary in history where the block of code was first introduced in its current form). It detects any occurence count change, but its primary focus is to find a transition from 1 to 0 (when going backwards in history). Its spirit is more about "finding where it appeared in its current shape".

[Footnote]
*1* https://lore.kernel.org/git/Pine.LNX.4.58.0504150753440.7211@ppc970.osdl.org/
Previous: Illia BobyrNext: Jeff King
Message 2 of 8 in “Long names for `git log -S` and `git log -G`”
  1. Illia BobyrNov 18, 2024
  2. Junio C HamanoNov 19, 2024
  3. Jeff KingNov 19, 2024
  4. Illia BobyrNov 21, 2024
  5. Junio C HamanoNov 22, 2024
  6. 0/1 Long names for `git log -S` and `git log -G`Illia Bobyr, Feb 5, 2025
  7. 1/1 diff: --patch{-modifies,grep} arg names for -S and -GIllia Bobyr, Feb 5, 2025
  8. Johannes SixtFeb 5, 2025

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.