From: Jon Seymour Date: Sat, 21 Aug 2010 04:08:57 GMT Subject: [PATCH v6 2/9] detached-stash: work around git rev-parse failure to detect bad log refs Message-ID: <1282363744-4924-3-git-send-email-jon.seymour@gmail.com> In-Reply-To: <1282363744-4924-1-git-send-email-jon.seymour@gmail.com> This commit is required because git rev-parse in 1.7.2 does not correctly indicate invalid log references using a non-zero status code. We use a proxy for the condition (non-empty error output) as a substitute. This commit can be reverted when, and if, rev-parse is fixed to indicate invalid log references with a status code. Signed-off-by: Jon Seymour --- git-stash.sh | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/git-stash.sh b/git-stash.sh index b424a50..42b0da2 100755 --- a/git-stash.sh +++ b/git-stash.sh @@ -328,6 +328,16 @@ parse_flags_and_rev() test "$ref_stash" = "$(git rev-parse --symbolic-full-name "${REV%@*}")" && IS_STASH_REF=t + if test "${REV}" != "${REV%{*\}}" + then + # maintainers: it would be better if git rev-parse indicated + # this condition with a non-zero status code but as of 1.7.2.1 it + # it did not. So, we use non-empty stderr output as a proxy for the + # condition of interest. + test -z "$(git rev-parse "$REV" 2>&1 >/dev/null)" || die "$REV does not exist in the stash log" + fi + +} is_stash_like() { -- 1.7.2.1.110.g34f32