Subject: Re: `git stash pop` UX Problem

From: Junio C Hamano <[email-masked]>
Date: Wed, 26 Feb 2014 14:17:10 -0800

David Kastrup <[email-masked]> writes:

> All that verbosity...
>
> $ git stash pop
> Auto-merging foo.txt
> CONFLICT (content): Merge conflict in foo.txt
> Cowardly refusing to drop stash.
> $

Actually, modulo "Cowardly", that may be the most harmless phrasing,
as apply_stash may try to signal an error for reasons not related to
an inability to apply the change cleanly (e.g. we may have failed to
refresh the index).

Whatever phrasing we may end up choosing, the change itself should
be trivial in any case.

 git-stash.sh | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/git-stash.sh b/git-stash.sh
index f0a94ab..4798bcf 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -512,8 +512,14 @@ apply_stash () {
 pop_stash() {
 	assert_stash_ref "$@"
 
-	apply_stash "$@" &&
-	drop_stash "$@"
+	if apply_stash "$@"
+	then
+		drop_stash "$@"
+	else
+		status=$?
+		say "The stash is kept in case you need it again."
+		exit $status
+	fi
 }
 
 drop_stash () {