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

Re: Fix "git diff --stat" for interesting - but empty - file changes

From
Junio C Hamano <gitster@pobox.com>
Date
Oct 17, 2012, 18:28 UTC
Message-ID
<7v4nltoswd.fsf@alter.siamese.dyndns.org>
In-Reply-To
<CA+55aFz88GPJcfMSqiyY+u0Cdm48bEyrsTGxHVJbGsYsDg=Q5w@mail.gmail.com>
Linus Torvalds <torvalds@linux-foundation.org> writes:
Show 26 quoted lines
> So if you did
>
>    chmod +x Makefile
>    git diff --stat
>
> before, it would show empty (" 0 files changed"), with this it shows
>
>  Makefile | 0
>  1 file changed, 0 insertions(+), 0 deletions(-)
>
> which I think is a more correct diffstat (and then with "--summary" it
> shows *what* the metadata change to Makefile was - this is completely
> consistent with our handling of renamed files).
>
> Side note: the old behavior was *really* odd. With no changes at all,
> "git diff --stat" output was empty. With just a chmod, it said "0
> files changed". No way is our legacy behavior sane.
>
> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
> ---
>
> This was triggered by kernel developers not noticing that they had
> added zero-sized files, because those additions never showed up in the
> diffstat.
> ...
> Comments?

I think listing a file whose content remain unchanged with 0 as the number of lines affected makes sense, and it will mesh well with Duy's

  http://thread.gmane.org/gmane.comp.version-control.git/207749

I first wondered if we would get a division-by-zero while scaling the graph, but we do not scale smaller numbers up to fill the columns, so we should be safe.

These days, we omit 0 insertions and 0 deletions, so I am not sure what you should get for this case, though:

>  Makefile | 0
>  1 file changed, 0 insertions(+), 0 deletions(-)
Should we just say "1 file changed"?
Previous: Linus TorvaldsNext: Linus Torvalds
Message 2 of 3 in “Fix "git diff --stat" for interesting - but empty - file changes”
  1. Linus TorvaldsOct 17, 2012
  2. Junio C HamanoOct 17, 2012
  3. Linus TorvaldsOct 17, 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.