stash: default listing to working-tree diff
commit288c67caf64af111aeb7c45cb8b6ba586a61c724
authorJeff King <peff@peff.net>
Wed, 6 Aug 2014 18:35:25 +0000 (6 14:35 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 7 Aug 2014 21:37:28 +0000 (7 14:37 -0700)
tree37761c65c970123072f59d3cbdf0700ed9d4ef6b
parentd31f3ad23dd1aee3c3e1015a43b02b995c01a9a1
stash: default listing to working-tree diff

When you list stashes, you can provide arbitrary git-log
options to change the display. However, adding just "-p"
does nothing, because each stash is actually a merge commit.

This implementation detail is easy to forget, leading to
confused users who think "-p" is not working. We can make
this easier by defaulting to "--first-parent -m", which will
show the diff against the working tree. This omits the
index portion of the stash entirely, but it's simple and it
matches what "git stash show" provides.

People who are more clueful about stash's true form can use
"--cc" to override the "-m", and the "--first-parent" will
then do nothing. For diffs, it only affects non-combined
diffs, so "--cc" overrides it. And for the traversal, we are
walking the linear reflog anyway, so we do not even care
about the parents.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-stash.sh
t/t3903-stash.sh