summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2007-07-07 20:38:06 (GMT)
committerJunio C Hamano <gitster@pobox.com>2007-07-07 20:38:06 (GMT)
commit6abe0f0383a9b77266810df0d1109b6d0783906e (patch)
treefbc1100c5d30e4a496fb1513017cb666fa371547 /t
parente3c76dbd0f7531eaed3ca8ec0000f03499839304 (diff)
parent150937c42591b0e9fb6c17f96c459d57b5f3bfdb (diff)
downloadgit-6abe0f0383a9b77266810df0d1109b6d0783906e.zip
git-6abe0f0383a9b77266810df0d1109b6d0783906e.tar.gz
git-6abe0f0383a9b77266810df0d1109b6d0783906e.tar.bz2
Merge branch 'js/stash'
* js/stash: Teach git-stash to "apply --index"
Diffstat (limited to 't')
-rwxr-xr-xt/t3903-stash.sh69
1 files changed, 69 insertions, 0 deletions
diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh
new file mode 100755
index 0000000..392ac1c
--- /dev/null
+++ b/t/t3903-stash.sh
@@ -0,0 +1,69 @@
+#!/bin/sh
+#
+# Copyright (c) 2007 Johannes E Schindelin
+#
+
+test_description='Test git-stash'
+
+. ./test-lib.sh
+
+test_expect_success 'stash some dirty working directory' '
+ echo 1 > file &&
+ git add file &&
+ test_tick &&
+ git commit -m initial &&
+ echo 2 > file &&
+ git add file &&
+ echo 3 > file &&
+ test_tick &&
+ git stash &&
+ git diff-files --quiet &&
+ git diff-index --cached --quiet HEAD
+'
+
+cat > expect << EOF
+diff --git a/file b/file
+index 0cfbf08..00750ed 100644
+--- a/file
++++ b/file
+@@ -1 +1 @@
+-2
++3
+EOF
+
+test_expect_success 'parents of stash' '
+ test $(git rev-parse stash^) = $(git rev-parse HEAD) &&
+ git diff stash^2..stash > output &&
+ diff -u output expect
+'
+
+test_expect_success 'apply needs clean working directory' '
+ echo 4 > other-file &&
+ git add other-file &&
+ echo 5 > other-file
+ ! git stash apply
+'
+
+test_expect_success 'apply stashed changes' '
+ git add other-file &&
+ test_tick &&
+ git commit -m other-file &&
+ git stash apply &&
+ test 3 = $(cat file) &&
+ test 1 = $(git show :file) &&
+ test 1 = $(git show HEAD:file)
+'
+
+test_expect_success 'apply stashed changes (including index)' '
+ git reset --hard HEAD^ &&
+ echo 6 > other-file &&
+ git add other-file &&
+ test_tick &&
+ git commit -m other-file &&
+ git stash apply --index &&
+ test 3 = $(cat file) &&
+ test 2 = $(git show :file) &&
+ test 1 = $(git show HEAD:file)
+'
+
+test_done