stash: fix git stash branch regression when branch creation fails
authorJon Seymour <jon.seymour@gmail.com>
Tue, 28 Sep 2010 13:19:52 +0000 (23:19 +1000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 29 Sep 2010 17:07:09 +0000 (10:07 -0700)
"git stash branch <branch> <stash>" started discarding the stash
when the branch creation fails.  It should have kept the stash
intact when aborting.

Signed-off-by: Jon Seymour <jon.seymour@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-stash.sh
t/t3903-stash.sh

index 57f36ce..0211326 100755 (executable)
@@ -446,9 +446,9 @@ apply_to_branch () {
        assert_stash_like "$@"
 
        git checkout -b $branch $REV^ &&
-       apply_stash "$@"
-
-       test -z "$IS_STASH_REF" || drop_stash "$@"
+       apply_stash "$@" && {
+               test -z "$IS_STASH_REF" || drop_stash "$@"
+       }
 }
 
 PARSE_CACHE='--not-parsed'
index 4215cc6..903a122 100755 (executable)
@@ -545,7 +545,7 @@ test_expect_success 'invalid ref of the form stash@{n}, n >= N' '
        git stash drop
 '
 
-test_expect_failure 'stash branch should not drop the stash if the branch exists' '
+test_expect_success 'stash branch should not drop the stash if the branch exists' '
        git stash clear &&
        echo foo >file &&
        git add file &&