Browse Source

detached-stash: simplify git stash branch

This patch teaches git stash branch to tolerate stash-like arguments.

In particular, a stash is only required if an argument isn't specified
and the stash is only dropped if a stash entry reference was
specified or implied.

The implementation has been simplified by taking advantage of
assert_stash_like() and the variables established by
parse_flags_and_rev().

Signed-off-by: Jon Seymour <jon.seymour@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jon Seymour 15 years ago committed by Junio C Hamano
parent
commit
fb433dc912
  1. 17
      git-stash.sh

17
git-stash.sh

@ -441,20 +441,17 @@ drop_stash () { @@ -441,20 +441,17 @@ drop_stash () {
}

apply_to_branch () {
have_stash || die 'Nothing to apply'

test -n "$1" || die 'No branch name specified'
branch=$1
shift 1

if test -z "$2"
then
set x "$ref_stash@{0}"
fi
stash=$2
set -- --index "$@"
assert_stash_like "$@"

git checkout -b $branch $REV^ &&
apply_stash "$@"

git checkout -b $branch $stash^ &&
apply_stash --index $stash &&
drop_stash $stash
test -z "$IS_STASH_REF" || drop_stash "$@"
}

PARSE_CACHE='--not-parsed'

Loading…
Cancel
Save