[PATCH v6 6/9] detached-stash: simplify git stash branch
- From
Jon Seymour <jon.seymour@gmail.com>
- Date
- Aug 21, 2010, 04:09 UTC
- Message-ID
- <1282363744-4924-7-git-send-email-jon.seymour@gmail.com>
- In-Reply-To
- <1282363744-4924-1-git-send-email-jon.seymour@gmail.com>
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> --- git-stash.sh | 17 +++++++---------- 1 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/git-stash.sh b/git-stash.sh index ac4c0f6..ff1edc9 100755 --- a/git-stash.sh +++ b/git-stash.sh @@ -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'
-- 1.7.2.1.110.g34f32