diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-05-04 14:57:15 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-05-04 14:57:15 -0700 |
commit | 0752000c2af829a1d220b9eb51b3fad331bc0038 (patch) | |
tree | 2634de053cfcaee646f8d0c278f1f41eda6679f9 | |
parent | 391b4933442dd07507a5de112092eaa4efc902bb (diff) | |
parent | e0e2a9cbfa938d0f1e9857d5ca5b196360663440 (diff) | |
download | git-0752000c2af829a1d220b9eb51b3fad331bc0038.tar.gz |
Merge branch 'jk/stash-loosen-safety' into maint
* jk/stash-loosen-safety:
stash: drop dirty worktree check on apply
-rwxr-xr-x | git-stash.sh | 4 | ||||
-rwxr-xr-x | t/t3903-stash.sh | 20 |
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 && |