From: Junio C Hamano Date: Wed, 17 Oct 2012 18:28:02 GMT Subject: Re: Fix "git diff --stat" for interesting - but empty - file changes Message-ID: <7v4nltoswd.fsf@alter.siamese.dyndns.org> In-Reply-To: Linus Torvalds writes: > 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 > --- > > 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"?