From: Jon Seymour Date: Tue, 05 Apr 2011 23:23:12 GMT Subject: Re: [PATCH 1/2] stash: fix accidental apply of non-existent stashes Message-ID: In-Reply-To: <20110405212025.GA3579@sigill.intra.peff.net> On Wed, Apr 6, 2011 at 7:20 AM, Jeff King wrote: > Signed-off-by: Jeff King Acked-by: Jon Seymour I've also submitted a patch that fixes the test that should have caught this. jon. > --- >  git-stash.sh     |   12 +----------- >  t/t3903-stash.sh |    6 ++++++ >  2 files changed, 7 insertions(+), 11 deletions(-) > > diff --git a/git-stash.sh b/git-stash.sh > index a305fb1..a5b1dc3 100755 > --- a/git-stash.sh > +++ b/git-stash.sh > @@ -264,7 +264,7 @@ parse_flags_and_rev() >        b_tree= >        i_tree= > > -       REV=$(git rev-parse --no-flags --symbolic "$@" 2>/dev/null) > +       REV=$(git rev-parse --no-flags --symbolic "$@") || exit 1 > >        FLAGS= >        for opt > @@ -310,16 +310,6 @@ parse_flags_and_rev() >        IS_STASH_LIKE=t && >        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() > diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh > index f62aaf5..11077f0 100755 > --- a/t/t3903-stash.sh > +++ b/t/t3903-stash.sh > @@ -37,6 +37,12 @@ test_expect_success 'parents of stash' ' >        test_cmp output expect >  ' > > +test_expect_success 'applying bogus stash does nothing' ' > +       test_must_fail git stash apply stash@{1} && > +       echo 1 >expect && > +       test_cmp expect file > +' > + >  test_expect_success 'apply needs clean working directory' ' >        echo 4 > other-file && >        git add other-file && > -- > 1.7.4.3.13.g0b769.dirty > >