summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-05-04 14:57:15 -0700
committerJunio C Hamano <gitster@pobox.com>2011-05-04 14:57:15 -0700
commit0752000c2af829a1d220b9eb51b3fad331bc0038 (patch)
tree2634de053cfcaee646f8d0c278f1f41eda6679f9
parent391b4933442dd07507a5de112092eaa4efc902bb (diff)
parente0e2a9cbfa938d0f1e9857d5ca5b196360663440 (diff)
downloadgit-0752000c2af829a1d220b9eb51b3fad331bc0038.tar.gz
Merge branch 'jk/stash-loosen-safety' into maint
* jk/stash-loosen-safety: stash: drop dirty worktree check on apply
-rwxr-xr-xgit-stash.sh4
-rwxr-xr-xt/t3903-stash.sh20
2 files changed, 17 insertions, 7 deletions
diff --git a/git-stash.sh b/git-stash.sh
index a305fb19f1..fbd4bc152d 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -344,9 +344,7 @@ apply_stash () {
assert_stash_like "$@"
- git update-index -q --refresh &&
- git diff-files --quiet --ignore-submodules ||
- die 'Cannot apply to a dirty working tree, please stage your changes'
+ git update-index -q --refresh || die 'unable to refresh index'
# current index state
c_tree=$(git write-tree) ||
diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh
index f62aaf5816..5fcf52a071 100755
--- a/t/t3903-stash.sh
+++ b/t/t3903-stash.sh
@@ -37,14 +37,26 @@ test_expect_success 'parents of stash' '
test_cmp output expect
'
-test_expect_success 'apply needs clean working directory' '
- echo 4 > other-file &&
+test_expect_success 'apply does not need clean working directory' '
+ echo 4 >other-file &&
git add other-file &&
- echo 5 > other-file &&
- test_must_fail git stash apply
+ echo 5 >other-file &&
+ git stash apply &&
+ echo 3 >expect &&
+ test_cmp expect file
+'
+
+test_expect_success 'apply does not clobber working directory changes' '
+ git reset --hard &&
+ echo 4 >file &&
+ test_must_fail git stash apply &&
+ echo 4 >expect &&
+ test_cmp expect file
'
test_expect_success 'apply stashed changes' '
+ git reset --hard &&
+ echo 5 >other-file &&
git add other-file &&
test_tick &&
git commit -m other-file &&