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

Re: report on a possible bug: git commit -p myfile.py unexpected output

From
Jeff King <peff@peff.net>
Date
Mar 24, 2017, 15:09 UTC
Message-ID
<20170324150921.vwh4yqpz25ph3zxe@sigill.intra.peff.net>
In-Reply-To
<26915be5-8749-7f66-4d60-516e7ed60adc@grubix.eu>
On Fri, Mar 24, 2017 at 03:59:07PM +0100, Michael J Gruber wrote:
Show 12 quoted lines
> > [master 96d1c24] myfile.py -> old unused methods removed...
> >  1 file changed, 182 insertions(+), 302 deletions(-)
> >  rewrite myfile.py (60%)
> [...]
> > myfile.py | 120
> > ---------------------------------------------------------------------------------------------------------------------
> > 1 file changed, 120 deletions(-)
> 
> 182-302 = -120
> 
> Did you make any changes in the lines that you left? Apparantly, that's
> what the rewrite looked like to git commit.

Even without changes to the remaining lines, a rewrite diff would consider them removed from the preimage and added again in the post-image.

The difference between the two commands is that "commit" turns on "-B" break detection by default, and "git show", "tig", etc, do not.

Looking at the actual diff with "git show -B" should show something like:

  -old
  -lines
  -that
  -weren't
  -touched
  -some
  -lines
  -that
  -were
  -deleted
  +old
  +lines
  +that
  +weren't
  +touched

The change is the same no matter how you view it; the "-B" flag just asks Git to show a non-minimal diff when the file was substantially changed.

-Peff
Previous: Michael J GruberNext: Joan Aguilar
Message 3 of 5 in “report on a possible bug: git commit -p myfile.py unexpected output”
  1. Joan AguilarMar 24, 2017
  2. Michael J GruberMar 24, 2017
  3. Jeff KingMar 24, 2017
  4. Joan AguilarMar 24, 2017
  5. Jeff KingMar 24, 2017

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.