X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=git-stash.sh;h=59db3dc38e72fda88d521171a174c08b919677a9;hb=582aa00bdffb27abcf1b27d541b4c231a395d3b8;hp=3a0685f1893098e8f5c877f509183c8434e7c028;hpb=26b9f5cc99a35d4f678c2f565e48237fc9515444;p=git.git diff --git a/git-stash.sh b/git-stash.sh index 3a0685f18..59db3dc38 100755 --- a/git-stash.sh +++ b/git-stash.sh @@ -151,6 +151,7 @@ save_stash () { ;; -*) echo "error: unknown option for 'stash save': $1" + echo " To provide a message, use git stash save -- '$1'" usage ;; *) @@ -209,18 +210,23 @@ list_stash () { } show_stash () { + have_stash || die 'No stash found' + flags=$(git rev-parse --no-revs --flags "$@") if test -z "$flags" then flags=--stat fi - w_commit=$(git rev-parse --verify --default $ref_stash "$@") && - b_commit=$(git rev-parse --verify "$w_commit^") && + w_commit=$(git rev-parse --quiet --verify --default $ref_stash "$@") && + b_commit=$(git rev-parse --quiet --verify "$w_commit^") || + die "'$*' is not a stash" + git diff $flags $b_commit $w_commit } apply_stash () { + applied_stash= unstash_index= while test $# != 0 @@ -242,6 +248,9 @@ apply_stash () { if test $# = 0 then have_stash || die 'Nothing to apply' + applied_stash="$ref_stash@{0}" + else + applied_stash="$*" fi # stash records the work tree, and is a merge between the @@ -415,8 +424,7 @@ pop) shift if apply_stash "$@" then - test -z "$unstash_index" || shift - drop_stash "$@" + drop_stash "$applied_stash" fi ;; branch)