"Elijah Newren via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > From: Elijah Newren <newren@xxxxxxxxx> > > Signed-off-by: Elijah Newren <newren@xxxxxxxxx> > --- > t/t3903-stash.sh | 38 ++++++++++++++++++++++++++++++++++++++ > 1 file changed, 38 insertions(+) > > diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh > index 873aa56e359..0727a494aa4 100755 > --- a/t/t3903-stash.sh > +++ b/t/t3903-stash.sh > @@ -1307,4 +1307,42 @@ test_expect_success 'stash -c stash.useBuiltin=false warning ' ' > test_must_be_empty err > ' > > +test_expect_failure 'git stash succeeds despite directory/file change' ' > + test_create_repo directory_file_switch_v1 && > + ( > + cd directory_file_switch_v1 && > + test_commit init && > + > + test_write_lines this file has some words >filler && > + git add filler && > + git commit -m filler && > + > + git rm filler && > + mkdir filler && > + echo contents >filler/file && > + cp filler/file expect && > + git stash push Creating 'expect' that is not used---perhaps this side also wants to apply the created stash and check the result, like the other side does, or something? Of course, an obvious alternative is to stop making a needless 'expect'. > + ) > +' > + > +test_expect_failure 'git stash can pop directory/file saved changes' ' > + test_create_repo directory_file_switch_v2 && > + ( > + cd directory_file_switch_v2 && > + test_commit init && > + > + test_write_lines this file has some words >filler && > + git add filler && > + git commit -m filler && > + > + git rm filler && > + mkdir filler && > + echo contents >filler/file && > + cp filler/file expect && > + git stash push --include-untracked && > + git stash apply --index && > + test_cmp expect filler/file > + ) > +' > + > test_done