> -----Original Message----- > From: Stefan Beller [mailto:sbeller@xxxxxxxxxx] > > diff --git a/t/lib-submodule-update.sh b/t/lib-submodule-update.sh index > 79cdd34..e0773c6 100755 > --- a/t/lib-submodule-update.sh > +++ b/t/lib-submodule-update.sh > @@ -634,7 +634,13 @@ test_submodule_forced_switch () { > > ########################## Modified submodule > ######################### > # Updating a submodule sha1 doesn't update the submodule's work tree > - test_expect_success "$command: modified submodule does not update > submodule work tree" ' > + if test > "$KNOWN_FAILURE_RECURSE_SUBMODULE_SERIES_BREAKS_REPLACE_SUBMODULE_TEST" = > 1 > + then > + RESULT="failure" > + else > + RESULT="success" > + fi > + test_expect_$RESULT "$command: modified submodule does not update > submodule work tree" ' Why does this break? I thought it was only if checkout is run with --recurse-submodules that anything should change? > +test_expect_success 'dirty file file is not deleted' ' Duplicate 'file' in this test name. > +# This is ok in theory, we just need to make sure # the garbage > +collection doesn't eat the commit. > +test_expect_success 'different commit prevents from deleting' ' This isn't a different commit -- it's a dirty index, right? > +test_expect_failure '"checkout --recurse-submodules" does not care about > untracked submodule content' ' > + echo untracked >submodule/untracked && > + git checkout --recurse-submodules master && > + git diff-files --quiet --ignore-submodules=untracked && > + git diff-index --quiet --cached HEAD && > + rm submodule/untracked > +' Use test_when_finished for cleanup. > +test_expect_failure '"checkout --recurse-submodules" needs -f when > submodule commit is not present (but does fail anyway)' ' > + git checkout --recurse-submodules -b bogus_commit master && > + git update-index --cacheinfo 160000 > 0123456789012345678901234567890123456789 submodule && > + BOGUS_TREE=$(git write-tree) && > + BOGUS_COMMIT=$(echo "bogus submodule commit" | git commit-tree > $BOGUS_TREE) && > + git commit -m "bogus submodule commit" && > + git checkout --recurse-submodules -f master && > + test_must_fail git checkout --recurse-submodules bogus_commit && > + git diff-files --quiet && > + test_must_fail git checkout --recurse-submodules -f bogus_commit && > + test_must_fail git diff-files --quiet submodule && > + git diff-files --quiet file && > + git diff-index --quiet --cached HEAD && > + git checkout --recurse-submodules -f master ' > +KNOWN_FAILURE_RECURSE_SUBMODULE_SERIES_BREAKS_REPLACE_SUBMODULE_TEST=1 > test_submodule_switch "git checkout" > > +KNOWN_FAILURE_RECURSE_SUBMODULE_SERIES_BREAKS_REPLACE_SUBMODULE_TEST= > test_submodule_forced_switch "git checkout -f" > > test_done > -- > 2.10.1.469.g00a8914