diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-04-27 22:36:42 +0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-04-27 22:36:42 +0400 |
commit | fcbf164fcbf4110c7e2f96356d6707d56ba44ba4 (patch) | |
tree | 990a0d029b85047a72b54bcc7846acccd7b6bb9d | |
parent | 29dba37f1f3d7d692b3994ccda4a5ea705c7f252 (diff) | |
parent | 9355fc9c35a5c40bbd8e380ec9e36013a1b230ed (diff) |
Merge branch 'jk/maint-stash-oob'
* jk/maint-stash-oob:
stash: fix false positive in the invalid ref test.
stash: fix accidental apply of non-existent stashes
Conflicts:
t/t3903-stash.sh
-rwxr-xr-x | git-stash.sh | 12 | ||||
-rwxr-xr-x | t/t3903-stash.sh | 16 |
2 files changed, 12 insertions, 16 deletions
diff --git a/git-stash.sh b/git-stash.sh index fbd4bc152d..07ac323590 100755 --- a/git-stash.sh +++ b/git-stash.sh @@ -264,7 +264,7 @@ parse_flags_and_rev() b_tree= i_tree= - REV=$(git rev-parse --no-flags --symbolic "$@" 2>/dev/null) + REV=$(git rev-parse --no-flags --symbolic "$@") || exit 1 FLAGS= for opt @@ -310,16 +310,6 @@ parse_flags_and_rev() IS_STASH_LIKE=t && test "$ref_stash" = "$(git rev-parse --symbolic-full-name "${REV%@*}")" && IS_STASH_REF=t - - if test "${REV}" != "${REV%{*\}}" - then - # maintainers: it would be better if git rev-parse indicated - # this condition with a non-zero status code but as of 1.7.2.1 it - # it did not. So, we use non-empty stderr output as a proxy for the - # condition of interest. - test -z "$(git rev-parse "$REV" 2>&1 >/dev/null)" || die "$REV does not exist in the stash log" - fi - } is_stash_like() diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh index 5fcf52a071..a27d778624 100755 --- a/t/t3903-stash.sh +++ b/t/t3903-stash.sh @@ -37,6 +37,12 @@ test_expect_success 'parents of stash' ' test_cmp output expect ' +test_expect_success 'applying bogus stash does nothing' ' + test_must_fail git stash apply stash@{1} && + echo 1 >expect && + test_cmp expect file +' + test_expect_success 'apply does not need clean working directory' ' echo 4 >other-file && git add other-file && @@ -549,11 +555,11 @@ test_expect_success 'invalid ref of the form stash@{n}, n >= N' ' echo bar6 > file2 && git add file2 && git stash && - test_must_fail git drop stash@{1} && - test_must_fail git pop stash@{1} && - test_must_fail git apply stash@{1} && - test_must_fail git show stash@{1} && - test_must_fail git branch tmp stash@{1} && + test_must_fail git stash drop stash@{1} && + test_must_fail git stash pop stash@{1} && + test_must_fail git stash apply stash@{1} && + test_must_fail git stash show stash@{1} && + test_must_fail git stash branch tmp stash@{1} && git stash drop ' |