create_stash() checks whether HEAD is valid via rev-parse. If this is not the case, both itself as well as rev-parse print an error message. Make rev-parse quiet.
In no_changes(), diff-index is called, which dies unquietly if there is no commit. Hide it's stderr.
Signed-off-by: Sebastian Morr <sebastian@morr.cc> ---
This bugged me: In a new, empty repository:
$ git stash
fatal: bad revision 'HEAD'
fatal: bad revision 'HEAD'
fatal: Needed a single revision
You do not have the initial commit yetWith this patch:
$ git stash
You do not have the initial commit yetWith the --quiet option, I wouldn't expect diff-index to print error messages. But it does so (via revision.c, setup_revisions()). Is this wanted?
git-stash.sh | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
Show changes to git-stash.sh +2 −2
diff --git a/git-stash.sh b/git-stash.sh index c766692..07b6511 100755 --- a/git-stash.sh +++ b/git-stash.sh @@ -34,7 +34,7 @@ else fi no_changes () { - git diff-index --quiet --cached HEAD --ignore-submodules -- && + git diff-index --quiet --cached HEAD --ignore-submodules -- 2>/dev/null && git diff-files --quiet --ignore-submodules && (test -z "$untracked" || test -z "$(untracked_files)") } @@ -67,7 +67,7 @@ create_stash () { fi # state of the base commit - if b_commit=$(git rev-parse --verify HEAD) + if b_commit=$(git rev-parse --quiet --verify HEAD) then head=$(git rev-list --oneline -n 1 HEAD --) else
-- 1.7.8.168.gd6118.dirty