Here are more results from my submodule partial clone work - teaching ref iteration to work with submodules by introducing struct repo parameters at different points. I'm sending this out early as RFC (before implementing the part that actually adds support for other repositories) because there might be a better way to do this that I haven't thought of. (This patch set contains my best idea for how this could be implemented, but admittedly it is a bit unelegant that the repo parameter is injected differently into each iterator function.) This will break any existing topic that introduces new ref store backends (Han-Wen cc-ed for reftable), although I think that the changes introduced here are not too significant. Jonathan Tan (2): refs: make _advance() check struct repo, not flag refs: add repo paramater to _iterator_peel() refs.c | 50 +++++++++++++++++++++++------------------- refs/debug.c | 13 ++++++----- refs/files-backend.c | 31 ++++++++++++++++++-------- refs/iterator.c | 38 ++++++++++++++++++++++++-------- refs/packed-backend.c | 30 ++++++++++++++++--------- refs/ref-cache.c | 7 +++--- refs/refs-internal.h | 51 +++++++++++++++++++++++++++++-------------- 7 files changed, 144 insertions(+), 76 deletions(-) -- 2.33.0.rc2.250.ged5fa647cd-goog