In this second iteration, only absorb_git_dir_into_superproject is touched, which does the check if connect_work_tree_and_git_dir is needed. Internally I also had a patch that converts is_submodule_populated to be gentle, but it is not needed here, so I dropped it before sending out. Thanks, Stefan Stefan Beller (3): Add gentle version of resolve_git_dir cache.h: expose the dying procedure for reading gitlinks submodule absorbing: fix worktree/gitdir pointers recursively for non-moves cache.h | 5 +++- setup.c | 52 ++++++++++++++++++++------------------ submodule.c | 43 ++++++++++++++++++++++++------- t/t7412-submodule-absorbgitdirs.sh | 27 ++++++++++++++++++++ 4 files changed, 93 insertions(+), 34 deletions(-) -- 2.11.0.495.g04f60290a0.dirty