The last iteration can be found here: https://public-inbox.org/git/20170817105349.GC52233@xxxxxxxxxxxxxxx/ This is mainly a status update and to let people know that I am still working on this. I struggled quite a bit with reviving my original test for the path based recursive fetch (first patch). The behavior seems to haved changed and simply setting the submodule configuration in .git/config without one in .gitmodules does not work anymore. I did not have time to investigate whether this was a deliberate change or a maybe a bug? So the solution for now is that I write my fake configuration (to avoid skipping submodule handling altogether) into a .gitmodules file. The second patch (cleanup of a submodule push testcase) was written because that currently is the only test failing. It is not meant for inclusion but rather as a demonstration of what might be happening when we cleanup testcases: Because of the behavioral change above, on first sight, it seemed like there was a shortcut in fetch and so on-demand fetch without submodule configuration would not be supported anymore. IIRC there were a lot more tests failing before when I implemented my patch without the fallback on paths. So my guess is that some tests have been cleaned up to use proper (.gitmodules) submodule setup. So the thing here is: If we want to make sure that we stay backwards compatible by supporting the setup with gitlinks without configuration. Then we also should keep tests around that have the plain manual setup without .gitmodules files. Just something, I think, we should keep in mind. Apart from the tests nothing has been added in this iteration. Since I finally have a working test now I will continue with reviving the fallback to paths. Cheers Heiko Heiko Voigt (4): fetch: add test to make sure we stay backwards compatible change submodule push test to use proper repository setup implement fetching of moved submodules submodule: simplify decision tree whether to or not to fetch submodule.c | 155 ++++++++++++++++++++++------------------- t/t5526-fetch-submodules.sh | 77 +++++++++++++++++++- t/t5531-deep-submodule-push.sh | 29 ++++---- 3 files changed, 174 insertions(+), 87 deletions(-) -- 2.10.0.129.g35f6318