This is a preliminary step towards supporting partial clone submodules (e.g., by cloning with --recurse-submodules and having the given filter propagate to submodules). Even with this patch set, we won't be there yet (notably, some code in Git access objects in submodules by adding them as alternates - so lazy-fetching missing objects in submodules wouldn't work here), but at least this is a first step. This patch set would also be useful if Git needed to operate on other repositories (other than in the submodule case), but I can't think of such a situation right now. As mentioned, there is still more work that needs to be done. Any help is appreciated, and as for me, I hope to get back to this in the 3rd quarter of the year. Jonathan Tan (4): promisor-remote: read partialClone config here promisor-remote: support per-repository config run-command: move envvar-resetting function promisor-remote: teach lazy-fetch in any repo Makefile | 1 + cache.h | 1 - object-file.c | 7 +- promisor-remote.c | 119 +++++++++++++++++++--------------- promisor-remote.h | 26 +++++--- repository.h | 4 ++ run-command.c | 10 +++ run-command.h | 7 ++ setup.c | 10 ++- submodule.c | 14 +--- t/helper/test-partial-clone.c | 34 ++++++++++ t/helper/test-tool.c | 1 + t/helper/test-tool.h | 1 + t/t0410-partial-clone.sh | 24 +++++++ 14 files changed, 177 insertions(+), 82 deletions(-) create mode 100644 t/helper/test-partial-clone.c -- 2.32.0.rc0.204.g9fa02ecfa5-goog