On Thu, Dec 13, 2007 at 05:34:40PM -0800, Junio C Hamano wrote: > > I agree "git stash show" should not give cryptic error message, but I > think you should do this only when the user did not explicitly say which > stash to show (that is, we should still give error message if the user > said "git stash show garbage"). Good point. Actually I found out that if there _are_ some stashes and an invalid name is given, the current behavior is still printing refs/stash, which I think is not quite right. So I also try to fix that while I'm at it. Now "git stash show" will keep quiet and just exit if there are no stashes at all. "git stash show some-non-existent-stash" will always print a clear message indicating the case. --- git-stash.sh | 23 ++++++++++++++++++++--- 1 files changed, 20 insertions(+), 3 deletions(-) diff --git a/git-stash.sh b/git-stash.sh index f16fd9c..40e93dd 100755 --- a/git-stash.sh +++ b/git-stash.sh @@ -116,13 +116,30 @@ show_stash () { flags=$(git rev-parse --no-revs --flags "$@") if test -z "$flags" then - flags=--stat + diff_flags=--stat + else + diff_flags=$flags + fi + s=$(git rev-parse --revs-only --no-flags "$@") + if test -z "$s" + then + arguments=$@ + if test "${flags}" = "${arguments}" + then + s=$(git rev-parse --revs-only --no-flags $ref_stash) + if test -z "$s" + then + return 0 + fi + else + eval stash_name=\$$# + die "Can't find any stash with name $stash_name" + fi fi - s=$(git rev-parse --revs-only --no-flags --default $ref_stash "$@") w_commit=$(git rev-parse --verify "$s") && b_commit=$(git rev-parse --verify "$s^") && - git diff $flags $b_commit $w_commit + git diff $diff_flags $b_commit $w_commit } apply_stash () { -- 1.5.4.rc0.8.gd381b - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html