git diff --numstat notices empty file creation, while --stat does not

From: Vishvajit Singh <hidden>
Date: 2016-06-15 22:48:41

I noticed that, in the case of two trees that differ in the creation
or deletion of an empty file, git diff --numstat provides information
about the empty file, whereas git diff --stat does not.

$ git --version
git version 1.6.1.2
$ git status
# On branch master
nothing to commit (working directory clean)
$ touch x.txt
$ git add x.txt
$ git commit -m 'add x.txt'
[master]: created 62f3c25: "add x.txt"
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 x.txt
$ git diff --stat HEAD^ HEAD
 0 files changed, 0 insertions(+), 0 deletions(-)
$ git diff --numstat HEAD^ HEAD
0       0       x.txt

This behaviour surprised me as I had been using diff --stat to get an
overview of the current differences between my working branch and the
master, and I had created a temporary to-do-list file in that branch
which I had subsequently emptied. In closing that branch, I might have
inadvertently merged the empty file into the master if I had not
remembered it was there. (I will use --numstat instead now.)

Is this small difference in behaviour between the two intentional?

Thanks,
Vishvajit Singh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help