Browse Source

Merge branch 'jk/stash-loosen-safety'

* jk/stash-loosen-safety:
  stash: drop dirty worktree check on apply
maint
Junio C Hamano 14 years ago
parent
commit
6213ccaac9
  1. 4
      git-stash.sh
  2. 20
      t/t3903-stash.sh

4
git-stash.sh

@ -344,9 +344,7 @@ apply_stash () {


assert_stash_like "$@" assert_stash_like "$@"


git update-index -q --refresh && git update-index -q --refresh || die 'unable to refresh index'
git diff-files --quiet --ignore-submodules ||
die 'Cannot apply to a dirty working tree, please stage your changes'


# current index state # current index state
c_tree=$(git write-tree) || c_tree=$(git write-tree) ||

20
t/t3903-stash.sh

@ -37,14 +37,26 @@ test_expect_success 'parents of stash' '
test_cmp output expect test_cmp output expect
' '


test_expect_success 'apply needs clean working directory' ' test_expect_success 'apply does not need clean working directory' '
echo 4 > other-file && echo 4 >other-file &&
git add other-file && git add other-file &&
echo 5 > other-file && echo 5 >other-file &&
test_must_fail git stash apply 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' ' test_expect_success 'apply stashed changes' '
git reset --hard &&
echo 5 >other-file &&
git add other-file && git add other-file &&
test_tick && test_tick &&
git commit -m other-file && git commit -m other-file &&

Loading…
Cancel
Save