Re: [PATCH] Replace the cryptic messages from "git stash show".
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Dec 15, 2007, 06:12 UTC
- Message-ID
- <7v63z0o59r.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <20071215051425.GA9118@fawkes>
Jing Xue <jingxue@digizenstudio.com> writes:
Show 49 quoted lines
> 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
> fiIs it just me who feels that the added code is much worse than the disease?