detached-stash: simplify git stash show

This commit refactors git stash show to make use of the assert_stash_like function.

git show now dies if the presented argument is non-stash-like.

Previous behaviour was to tolerate commits that were not even stash-like.

Previously, git stash show would accept stash-like arguments, but
only if there was a stash on the stack.

Now, git stash accepts stash-like arguments always and only fails
if no stash-like argument is specified and there is no stash stack.

Signed-off-by: Jon Seymour <jon.seymour@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jon Seymour 2010-08-21 14:09:02 +10:00 committed by Junio C Hamano
parent fb433dc912
commit a9bf09e19d

View File

@ -210,19 +210,9 @@ list_stash () {
}
show_stash () {
have_stash || die 'No stash found'
assert_stash_like "$@"
flags=$(git rev-parse --no-revs --flags "$@")
if test -z "$flags"
then
flags=--stat
fi
w_commit=$(git rev-parse --quiet --verify --default $ref_stash "$@") &&
b_commit=$(git rev-parse --quiet --verify "$w_commit^") ||
die "'$*' is not a stash"
git diff $flags $b_commit $w_commit
git diff ${FLAGS:---stat} $b_commit $w_commit
}
#