Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes: > This test was already a bit broken in needing the preceding tests, but > it will break now if REFFILES isn't true, which you can reproduce > e.g. with: > > ./t3903-stash.sh --run=1-16,18-50 -vixd > > Perhaps the least sucky solution to that is: > > diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh > index ec9cc5646d6..1d11c9bda20 100755 > --- a/t/t3903-stash.sh > +++ b/t/t3903-stash.sh > @@ -205,13 +205,19 @@ test_expect_success 'drop stash reflog updates refs/stash with rewrite' ' > cat >expect <<-EOF && > $(test_oid zero) $oid > EOF > - test_cmp expect actual > + test_cmp expect actual && > + >dropped-stash > ' If "git stash drop", invoked in earlier part of this test before the precontext, fails, then test_cmp would fail and we leave dropped-stash untouched, even though we did run "git stash drop" already. Why does the next test need to depend on what has happened earlier? > test_expect_success 'stash pop' ' > git reset --hard && > git stash pop && > - test 9 = $(cat file) && > + if test -e dropped-stash > + then > + test 9 = $(cat file) > + else > + test 3 = $(cat file) > + fi && > test 1 = $(git show :file) && > test 1 = $(git show HEAD:file) && > test 0 = $(git stash list | wc -l)