Thanks Junio for the in-depth discussion! I squashed the first two commits as they are actually fixing the same underlying issue. Setting wt_prefix=<empty> is the actual preparation for switching the submodule--helper to git -C instead of "--prefix$prefix". But setting wt_prefix=empty would break existing tests, so the different computation of the prefix (relative_path of sm_path instead of plain sm_path) is the fix of the fix. Eric, I picked up the git -C in the tests, which are broken into 2 patches and have a more concise commit message each. Jacob, thanks for your Reviewed-by: Jacob Keller <jacob.e.keller@xxxxxxxxx> although I changed the code so much, that I did not put it in this series. New in this series is the last commit, which gets rid of the prefix for "submodule--helper clone". (It was useless to begin with; probably just cargo-culted in because we had it in "submodule--helper list") Thanks, Stefan Stefan Beller (5): submodule: prepare recursive path from non root directory submodule--helper list: lose the extra prefix option submodule update: add test for recursive from non root dir submodule sync: test syncing one submodule submodule--helper clone: lose the extra prefix option builtin/submodule--helper.c | 10 ++-------- git-submodule.sh | 23 +++++++++++++---------- t/t7403-submodule-sync.sh | 13 +++++++++---- t/t7406-submodule-update.sh | 14 +++++++++++--- 4 files changed, 35 insertions(+), 25 deletions(-) -- 2.8.0.rc4.10.g52f3f33.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html