Merge branch 'jk/stash-list-p'
authorJunio C Hamano <gitster@pobox.com>
Tue, 9 Sep 2014 19:54:00 +0000 (12:54 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 9 Sep 2014 19:54:00 +0000 (12:54 -0700)
Teach "git stash list -p" to show the difference between the base
commit version and the working tree version, which is in line with
what "git show" gives.

* jk/stash-list-p:
stash: default listing to working-tree diff

git-stash.sh
t/t3903-stash.sh
index bcc757b3900b02595e5b432edcfd590e312b48ce..9c1ba8e4b81a1f118af1967c2c72795ba12d6df0 100755 (executable)
@@ -297,7 +297,7 @@ have_stash () {
 
 list_stash () {
        have_stash || return 0
-       git log --format="%gd: %gs" -g "$@" $ref_stash --
+       git log --format="%gd: %gs" -g --first-parent -m "$@" $ref_stash --
 }
 
 show_stash () {
index 5b79b216e2e3bb837e58828a2e9a292cb2d7cc53..1e29962fad30edb263cd07b6586f1b1a962c88cf 100755 (executable)
@@ -685,4 +685,46 @@ test_expect_success 'handle stash specification with spaces' '
        grep pig file
 '
 
+test_expect_success 'setup stash with index and worktree changes' '
+       git stash clear &&
+       git reset --hard &&
+       echo index >file &&
+       git add file &&
+       echo working >file &&
+       git stash
+'
+
+test_expect_success 'stash list implies --first-parent -m' '
+       cat >expect <<-\EOF &&
+       stash@{0}: WIP on master: b27a2bc subdir
+
+       diff --git a/file b/file
+       index 257cc56..d26b33d 100644
+       --- a/file
+       +++ b/file
+       @@ -1 +1 @@
+       -foo
+       +working
+       EOF
+       git stash list -p >actual &&
+       test_cmp expect actual
+'
+
+test_expect_success 'stash list --cc shows combined diff' '
+       cat >expect <<-\EOF &&
+       stash@{0}: WIP on master: b27a2bc subdir
+
+       diff --cc file
+       index 257cc56,9015a7a..d26b33d
+       --- a/file
+       +++ b/file
+       @@@ -1,1 -1,1 +1,1 @@@
+       - foo
+        -index
+       ++working
+       EOF
+       git stash list -p --cc >actual &&
+       test_cmp expect actual
+'
+
 test_done