On Sat, Mar 23 2019, Keith Smiley wrote:
> In the case there are no files to stash, but the user asked to stash, we
> should exit 1 since the stashing failed.
> ---
> git-stash.sh | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/git-stash.sh b/git-stash.sh
> index 789ce2f41d4a3..ca362b1a31277 100755
> --- a/git-stash.sh
> +++ b/git-stash.sh
> @@ -318,7 +318,7 @@ push_stash () {
> if no_changes "$@"
> then
> say "$(gettext "No local changes to save")"
> - exit 0
> + exit 1
> fi
>
> git reflog exists $ref_stash ||
Thanks for contributing, some points:
* stash is currently (in the 'next' branch) being rewritten in C. It's
a better move at this point to patch that version, this code is about
to be deleted.
* This is missing a corresponding test, and skimming the stash manpage
we should document how these exit codes are supposed to act.
* Shouldn't we do this consistently across all the other sub-commands?
Trying some of them seems 'push' may be the odd one out, but maybe
I've missed some (and this would/should be covered by
tests). I.e. some single test that does a bunch of ops with no
entries / nothing to stash and asserts exit codes.