From: Jon Seymour <jon.seymour@gmail.com>
To: git@vger.kernel.org
Cc: j6t@kdbg.org, gitster@pobox.com, Jon Seymour <jon.seymour@gmail.com>
Subject: [PATCH v6 5/9] detached-stash: refactor git stash pop implementation
Date: Sat, 21 Aug 2010 14:09:00 +1000 [thread overview]
Message-ID: <1282363744-4924-6-git-send-email-jon.seymour@gmail.com> (raw)
In-Reply-To: <1282363744-4924-1-git-send-email-jon.seymour@gmail.com>
git stash pop is abstracted into its own implementation function - pop_stash.
The behaviour is changed so that git stash pop fails early if the
the specified stash reference does not exist or does not refer to
an extant entry in the reflog of the reference stash.
This fixes the case where the apply succeeds, but the drop fails.
Previously this caused caused git stash pop to exit with a non-zero exit code
and a dirty tree.
Now, git stash pop fails with a non-zero exit code, but the working
tree is not modified.
Signed-off-by: Jon Seymour <jon.seymour@gmail.com>
---
git-stash.sh | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/git-stash.sh b/git-stash.sh
index 750f360..ac4c0f6 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -423,6 +423,13 @@ apply_stash () {
fi
}
+pop_stash() {
+ assert_stash_ref "$@"
+
+ apply_stash "$@" &&
+ drop_stash "$@"
+}
+
drop_stash () {
assert_stash_ref "$@"
@@ -498,10 +505,7 @@ drop)
;;
pop)
shift
- if apply_stash "$@"
- then
- drop_stash "$applied_stash"
- fi
+ pop_stash "$@"
;;
branch)
shift
--
1.7.2.1.110.g34f32
next prev parent reply other threads:[~2010-08-21 4:10 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-21 4:08 [PATCH v6 0/9] detached-stash: regularise handling of stash arguments by git stash Jon Seymour
2010-08-21 4:08 ` [PATCH v6 1/9] detached-stash: introduce parse_flags_and_revs function Jon Seymour
2010-08-21 4:46 ` [PATCH v6a " Jon Seymour
2010-08-21 4:08 ` [PATCH v6 2/9] detached-stash: work around git rev-parse failure to detect bad log refs Jon Seymour
2010-08-21 4:48 ` [PATCH v6a " Jon Seymour
2010-08-21 4:08 ` [PATCH v6 3/9] detached-stash: simplify stash_apply Jon Seymour
2010-08-21 4:08 ` [PATCH v6 4/9] detached-stash: simplify stash_drop Jon Seymour
2010-08-21 4:09 ` Jon Seymour [this message]
2010-08-21 4:09 ` [PATCH v6 6/9] detached-stash: simplify git stash branch Jon Seymour
2010-08-21 4:09 ` [PATCH v6 7/9] detached-stash: simplify git stash show Jon Seymour
2010-08-21 4:09 ` [PATCH v6 8/9] detached-stash: tests of git stash with stash-like arguments Jon Seymour
2010-08-21 4:09 ` [PATCH v6 9/9] detached-stash: update Documentation Jon Seymour
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1282363744-4924-6-git-send-email-jon.seymour@gmail.com \
--to=jon.seymour@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=j6t@kdbg.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).