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

Re: git log -Sfoo ignores indentation (whitespace?) changes...

From
Jeff King <peff@peff.net>
Date
Mar 3, 2009, 16:03 UTC
Message-ID
<20090303160324.GA32079@coredump.intra.peff.net>
In-Reply-To
<49AD5164.8090507@sneakemail.com>
On Tue, Mar 03, 2009 at 04:48:52PM +0100, "Peter Valdemar Mørch (Lists)" wrote:
> If a commit removes mention of foo one place and just accidentally  
> happens to add foo somewhere completely unrelated then it wouldn't show  
> up in the output.
Right. But think for a minute about what it means to "move". If I have:
  foo
  bar
and then change it to:
  bar
  foo
Did "foo" move, or did "bar"?
So I'm not sure that what you're asking for is necessarily well-defined.
> Would be neat with a feature that does what I thought -S did tho...
You can do:
  git log -z -p | perl -0ne 'print if /^[-+].*string/m' | tr '\0' '\n'

which I think is what you want (show any commit that has changed lines that contain the string). But of course you will lose colorizing and automatic paging, and it's a lot slower. And note that whether it finds the example above will depend on how the diff is generated: did "foo" move or did "bar"? But in practice it will generally find what you are looking for.

> Thanks, Jeff, for both the answer and the documentation patch.
You're welcome.
-Peff
Previous: Peter Valdemar Mørch (Lists)Next: Junio C Hamano
Message 13 of 17 in “git log -Sfoo ignores indentation (whitespace?) changes...”
  1. Peter Valdemar Mørch (Lists)Mar 3, 2009
  2. Jeff KingMar 3, 2009
  3. doc: clarify how -S worksJeff King, Mar 3, 2009
  4. John TapsellMar 3, 2009
  5. Jeff KingMar 3, 2009
  6. John TapsellMar 3, 2009
  7. Junio C HamanoMar 3, 2009
  8. Jeff KingMar 3, 2009
  9. John TapsellMar 3, 2009
  10. Jeff KingMar 3, 2009
  11. Junio C HamanoMar 3, 2009
  12. Peter Valdemar Mørch (Lists)Mar 3, 2009
  13. Jeff KingMar 3, 2009
  14. Junio C HamanoMar 3, 2009
  15. Michael J GruberMar 3, 2009
  16. Jeff KingMar 3, 2009
  17. Junio C HamanoMar 3, 2009

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.