At $dayjob, most of our projects are organized as a rather small superproject, with a number of git submodules. Usually, one of those submodules is a linux kernel git tree. For CI testing, we create a fresh docker container which starts by doing a "git clone --recursive $superproject", which takes quite a while due to the linux repo. So we'd like to speed that up by having a reasonable up-to-date linux repo on each build slave, mapping that into the docker container, and then telling git "when you get to cloning the src/linux submodule, look over here for objects", i.e. having some way to have --reference-if-able and --disassociate in effect for submodules. If this is already possible, I can't find it in the documentation. And if it doesn't exist, I can't really think of a good way to define the UI for giving those options (other than, perhaps, having a top-level --reference-if-able pass down to the submodules with the meaning 'when initializing the submodule at some/path, try to use the submodule, if any, at some/path in the referenced top-level repo'". Rasmus