Eric Wong <e@xxxxxxxxx> writes: > +test_expect_success 'git fetch --all --no-write-fetch-head' ' > + (cd test && > + rm -f .git/FETCH_HEAD && > + git fetch --all --no-write-fetch-head && > + test_path_is_missing .git/FETCH_HEAD) > +' The style used in the other script might be more modern, but given that the existing one (in the post context) uses the same older style, I think that would be OK. > test_expect_success 'git fetch --all should continue if a remote has errors' ' > (git clone one test2 && > cd test2 && > diff --git a/t/t5526-fetch-submodules.sh b/t/t5526-fetch-submodules.sh > index b9546ef8e5..8ffb300f2d 100755 > --- a/t/t5526-fetch-submodules.sh > +++ b/t/t5526-fetch-submodules.sh > @@ -167,6 +167,19 @@ test_expect_success "fetch --recurse-submodules recurses into submodules" ' > verify_fetch_result actual.err > ' > > +test_expect_success "fetch --recurse-submodules honors --no-write-fetch-head" ' > + ( > + cd downstream && > + fh=$(find . -name FETCH_HEAD -type f) && > + rm -f $fh && I do not like this part. The "rm -f" we saw in the "fetch --all" test was "make sure it is missing, so that we can be sure that presence after running 'git fetch' *is* a bug". But using $fh later ... > + git fetch --recurse-submodules --no-write-fetch-head && > + for f in $fh > + do > + test_path_is_missing $f || return 1 > + done ... like this means now we depend on FETCH_HEAD being in all submodule repositories before we start this step. I think we should instead enumerate submodule repositories, instead of enumerating existing .git/FETCH_HEAD files. > + ) > +' > + > test_expect_success "submodule.recurse option triggers recursive fetch" ' > add_submodule_commits && > (