bisect: use update_ref
[gitweb.git] / git-stash.sh
index 1f5ea877d719715760d42a3ee1d0950a1adaf9fc..1d5ba7a4f935fd08572c235b7c5d4390eb8d6528 100755 (executable)
@@ -183,9 +183,7 @@ store_stash () {
                stash_msg="Created via \"git stash store\"."
        fi
 
-       # Make sure the reflog for stash is kept.
-       : >>"$(git rev-parse --git-path logs/$ref_stash)"
-       git update-ref -m "$stash_msg" $ref_stash $w_commit
+       git update-ref --create-reflog -m "$stash_msg" $ref_stash $w_commit
        ret=$?
        test $ret != 0 && test -z $quiet &&
        die "$(eval_gettext "Cannot update \$ref_stash with \$w_commit")"
@@ -262,7 +260,7 @@ save_stash () {
                say "$(gettext "No local changes to save")"
                exit 0
        fi
-       test -f "$(git rev-parse --git-path logs/$ref_stash)" ||
+       git reflog exists $ref_stash ||
                clear_stash || die "$(gettext "Cannot initialize stash")"
 
        create_stash "$stash_msg" $untracked
@@ -457,8 +455,6 @@ apply_stash () {
        assert_stash_like "$@"
 
        git update-index -q --refresh || die "$(gettext "unable to refresh index")"
-       git diff-index --cached --quiet --ignore-submodules HEAD -- ||
-               die "$(gettext "Cannot apply stash: Your index contains uncommitted changes.")"
 
        # current index state
        c_tree=$(git write-tree) ||