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 коммит произвёл Junio C Hamano
Родитель fb433dc912
Коммит a9bf09e19d
1 изменённых файлов: 2 добавлений и 12 удалений

Просмотреть файл

@ -210,19 +210,9 @@ list_stash () {
} }
show_stash () { show_stash () {
have_stash || die 'No stash found' assert_stash_like "$@"
flags=$(git rev-parse --no-revs --flags "$@") git diff ${FLAGS:---stat} $b_commit $w_commit
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
} }
# #