NON-CACHED MODE
The "non-cached" mode takes a different approach, and is potentially
the more useful of the two in that what it does can't be emulated with
a "git-write-tree" + "git-diff-tree". Thus that's the default mode. The
non-cached version asks the question:
show me the differences between HEAD and the currently checked out
tree - index contents _and_ files that aren't up-to-date
which is obviously a very useful question too, since that tells you
what you could commit. Again, the output matches the "git-diff-tree -r"
output to a tee, but with a twist.
The twist is that if some file doesn't match the index, we don't have a
backing store thing for it, and we use the magic "all-zero" sha1 to
show that. So let's say that you have edited kernel/sched.c, but have
not actually done a "git-update-index" on it yet - there is no "object"
associated with the new state, and you get:
[…]