Output of 'diff' and 'diff --raw' not the same for modified submodule

From: Tim Henigan <hidden>
Date: 2016-06-15 22:53:28
Subsystem: library code, the rest · Maintainers: Andrew Morton, Linus Torvalds

If a submodule has new commits, then 'git diff' and 'git diff --raw'
report different outputs.

For example, the following output is given after adding a new commit
to a submodule:

$ git version
git version 1.7.10.rc4

$ git diff
diff --git a/lib/tst-mergetool b/lib/tst-mergetool
index 9917ea0..5bc1908 160000
--- a/lib/tst-mergetool
+++ b/lib/tst-mergetool
@@ -1 +1 @@
-Subproject commit 9917ea0c228a0c24153da38df954f8a9d78cafac
+Subproject commit 5bc19083c436aaa85762cdc309e62ed98f5cc276
$ git diff --raw --no-abbrev
:160000 160000 9917ea0c228a0c24153da38df954f8a9d78cafac
0000000000000000000000000000000000000000 M  lib/tst-mergetool


'git diff' shows the new SHA1 for the submodule, but 'git diff --raw'
shows the NULL ID.  From the diff man page, I understand that the NULL
ID indicates "creation, unmerged or 'look at the work tree'", but I
expected the output of two commands to match.

Is this the intended behavior?

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