Re: [PATCH] Replace the cryptic messages from "git stash show".
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:43:59
Jing Xue [off-list ref] writes:
quoted hunk
On Thu, Dec 13, 2007 at 05:34:40PM -0800, Junio C Hamano wrote:quoted
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
Is it just me who feels that the added code is much worse than the disease?