From: Jon Seymour Date: Tue, 03 Aug 2010 10:36:14 GMT Subject: [PATCH v2 2/3] stash: Allow git stash branch to process commits that look like stashes but are not stash references. Message-ID: <1280831775-30759-3-git-send-email-jon.seymour@gmail.com> In-Reply-To: <1280831775-30759-1-git-send-email-jon.seymour@gmail.com> This patch allows git stash branch to work with stash-like commits created by git stash create. Two changes were required: * relax the pre-condition so that a stash stack is required if and only if a stash argument is not specified * don't attempt to drop a stash argument that doesn't look like a stash reference. Signed-off-by: Jon Seymour --- git-stash.sh | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/git-stash.sh b/git-stash.sh index 1d95447..432ddae 100755 --- a/git-stash.sh +++ b/git-stash.sh @@ -225,6 +225,12 @@ show_stash () { git diff $flags $b_commit $w_commit } +if_stash_ref() { + ref="$1" + shift + test "${ref#stash}" = "${ref}" -a "${ref#$ref_stash}" = "${ref}" || "$@" +} + apply_stash () { applied_stash= unstash_index= @@ -359,20 +365,20 @@ drop_stash () { } apply_to_branch () { - have_stash || die 'Nothing to apply' test -n "$1" || die 'No branch name specified' branch=$1 if test -z "$2" then + have_stash || die 'Nothing to apply' set x "$ref_stash@{0}" fi stash=$2 git checkout -b $branch $stash^ && apply_stash --index $stash && - drop_stash $stash + if_stash_ref "$stash" drop_stash "$stash" } # The default command is "save" if nothing but options are given -- 1.7.2.1.111.g8fc90