threads / patch / 23032

patchImprove error messages from 'git stash show'

Subject: [PATCH 1/1] Improve error messages from 'git stash show'

## tl;dr

5 messages between Mar 15, 2010 and Mar 16, 2010. Diffs are folded; open one to read it.

replies: 4people: 2as markdown or json

Gustaf Hendeby· Mar 15, 2010, 22:19 UTC · lore

The previous error message "fatal: Needed a single revision" is not very informative.

Signed-off-by: Gustaf Hendeby <hendeby@isy.liu.se>
---
 git-stash.sh |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
Show changes to git-stash.sh +6 −2
diff --git a/git-stash.sh b/git-stash.sh
index aa47e54..cf221c6 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -210,14 +210,18 @@ list_stash () {
 }
 
 show_stash () {
+	have_stash || die 'No stash found'
+
 	flags=$(git rev-parse --no-revs --flags "$@")
 	if test -z "$flags"
 	then
 		flags=--stat
 	fi
 
-	w_commit=$(git rev-parse --verify --default $ref_stash "$@") &&
-	b_commit=$(git rev-parse --verify "$w_commit^") &&
+	w_commit=$(git rev-parse --quiet --verify --default $ref_stash "$@") &&
+	b_commit=$(git rev-parse --quiet --verify "$w_commit^") ||
+		die 'Stash not found'
+
 	git diff $flags $b_commit $w_commit
 }
 
-- 
1.7.0.2.274.gc376e.dirty
Junio C Hamano· Mar 15, 2010, 23:17 UTC · re: Gustaf Hendeby · lore

Re: [PATCH 1/1] Improve error messages from 'git stash show'

Gustaf Hendeby <hendeby@isy.liu.se> writes:
Show 30 quoted lines
> The previous error message "fatal: Needed a single revision" is not
> very informative.
>
> Signed-off-by: Gustaf Hendeby <hendeby@isy.liu.se>
> ---
>  git-stash.sh |    8 ++++++--
>  1 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/git-stash.sh b/git-stash.sh
> index aa47e54..cf221c6 100755
> --- a/git-stash.sh
> +++ b/git-stash.sh
> @@ -210,14 +210,18 @@ list_stash () {
>  }
>  
>  show_stash () {
> +	have_stash || die 'No stash found'
> +
>  	flags=$(git rev-parse --no-revs --flags "$@")
>  	if test -z "$flags"
>  	then
>  		flags=--stat
>  	fi
>  
> -	w_commit=$(git rev-parse --verify --default $ref_stash "$@") &&
> -	b_commit=$(git rev-parse --verify "$w_commit^") &&
> +	w_commit=$(git rev-parse --quiet --verify --default $ref_stash "$@") &&
> +	b_commit=$(git rev-parse --quiet --verify "$w_commit^") ||
> +		die 'Stash not found'
> +

Because you checked have_stash upfront, an error detected here cannot be "stash not found". It is something else, isn't it?

Show 5 quoted lines
>  	git diff $flags $b_commit $w_commit
>  }
>  
> -- 
> 1.7.0.2.274.gc376e.dirty
Gustaf Hendeby· Mar 16, 2010, 08:04 UTC · re: Junio C Hamano · lore

Re: [PATCH 1/1] Improve error messages from 'git stash show'

On 03/16/2010 12:17 AM, Junio C Hamano wrote:
Show 35 quoted lines
> Gustaf Hendeby <hendeby@isy.liu.se> writes:
> 
>> The previous error message "fatal: Needed a single revision" is not
>> very informative.
>>
>> Signed-off-by: Gustaf Hendeby <hendeby@isy.liu.se>
>> ---
>>  git-stash.sh |    8 ++++++--
>>  1 files changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/git-stash.sh b/git-stash.sh
>> index aa47e54..cf221c6 100755
>> --- a/git-stash.sh
>> +++ b/git-stash.sh
>> @@ -210,14 +210,18 @@ list_stash () {
>>  }
>>  
>>  show_stash () {
>> +	have_stash || die 'No stash found'
>> +
>>  	flags=$(git rev-parse --no-revs --flags "$@")
>>  	if test -z "$flags"
>>  	then
>>  		flags=--stat
>>  	fi
>>  
>> -	w_commit=$(git rev-parse --verify --default $ref_stash "$@") &&
>> -	b_commit=$(git rev-parse --verify "$w_commit^") &&
>> +	w_commit=$(git rev-parse --quiet --verify --default $ref_stash "$@") &&
>> +	b_commit=$(git rev-parse --quiet --verify "$w_commit^") ||
>> +		die 'Stash not found'
>> +
> 
> Because you checked have_stash upfront, an error detected here cannot be
> "stash not found".  It is something else, isn't it?

This case occurs when you do something like git stash foo, where foo is no appropriate stash to show. Would something like this be more informative in the case of git stash foo:

Stash entry 'foo' could not be found
/Gustaf
Junio C Hamano· Mar 16, 2010, 16:53 UTC · re: Gustaf Hendeby · lore

Re: [PATCH 1/1] Improve error messages from 'git stash show'

Gustaf Hendeby <hendeby@isy.liu.se> writes:
Show 42 quoted lines
> On 03/16/2010 12:17 AM, Junio C Hamano wrote:
>> Gustaf Hendeby <hendeby@isy.liu.se> writes:
>> 
>>> The previous error message "fatal: Needed a single revision" is not
>>> very informative.
>>>
>>> Signed-off-by: Gustaf Hendeby <hendeby@isy.liu.se>
>>> ---
>>>  git-stash.sh |    8 ++++++--
>>>  1 files changed, 6 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/git-stash.sh b/git-stash.sh
>>> index aa47e54..cf221c6 100755
>>> --- a/git-stash.sh
>>> +++ b/git-stash.sh
>>> @@ -210,14 +210,18 @@ list_stash () {
>>>  }
>>>  
>>>  show_stash () {
>>> +	have_stash || die 'No stash found'
>>> +
>>>  	flags=$(git rev-parse --no-revs --flags "$@")
>>>  	if test -z "$flags"
>>>  	then
>>>  		flags=--stat
>>>  	fi
>>>  
>>> -	w_commit=$(git rev-parse --verify --default $ref_stash "$@") &&
>>> -	b_commit=$(git rev-parse --verify "$w_commit^") &&
>>> +	w_commit=$(git rev-parse --quiet --verify --default $ref_stash "$@") &&
>>> +	b_commit=$(git rev-parse --quiet --verify "$w_commit^") ||
>>> +		die 'Stash not found'
>>> +
>> 
>> Because you checked have_stash upfront, an error detected here cannot be
>> "stash not found".  It is something else, isn't it?
>
> This case occurs when you do something like git stash foo, where foo is
> no appropriate stash to show.  Would something like this be more
> informative in the case of git stash foo:
>
> Stash entry 'foo' could not be found
That is more like "'foo' is not a stash", isn't it?
Gustaf Hendeby· Mar 16, 2010, 17:52 UTC · re: Junio C Hamano · lore

[PATCH v2] Improve error messages from 'git stash show'

The previous error message "fatal: Needed a single revision" is not very informative.

Signed-off-by: Gustaf Hendeby <hendeby@isy.liu.se>
---
On 03/16/2010 05:53 PM, Junio C Hamano wrote:
Show 13 quoted lines
>>>> +	b_commit=$(git rev-parse --quiet --verify "$w_commit^") ||
>>>> >>>  +		die 'Stash not found'
>>>> >>>  +
>>> >>  
>>> >>  Because you checked have_stash upfront, an error detected here cannot be
>>> >>  "stash not found".  It is something else, isn't it?
>> >
>> >  This case occurs when you do something like git stash foo, where foo is
>> >  no appropriate stash to show.  Would something like this be more
>> >  informative in the case of git stash foo:
>> >
>> >  Stash entry 'foo' could not be found
> That is more like "'foo' is not a stash", isn't it?
I find your suggestion much clearer.  Thank you!
/Gustaf
 git-stash.sh |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
Show changes to git-stash.sh +6 −2
diff --git a/git-stash.sh b/git-stash.sh
index aa47e54..59db3dc 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -210,14 +210,18 @@ list_stash () {
 }
 
 show_stash () {
+	have_stash || die 'No stash found'
+
 	flags=$(git rev-parse --no-revs --flags "$@")
 	if test -z "$flags"
 	then
 		flags=--stat
 	fi
 
-	w_commit=$(git rev-parse --verify --default $ref_stash "$@") &&
-	b_commit=$(git rev-parse --verify "$w_commit^") &&
+	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
 }
 
-- 
1.7.0.2.274.gba5d.dirty

← back to recent threads