Jonathan Nieder [off-list ref] writes:
2. Submodules aware of their superproject and of the parent's branches.
In other words, submodules would act as thought under refs/ they
had a symlink
parent -> ../../../refs
So you could do
git checkout --recurse-submodules master
cd path/to/submodule
git checkout parent/heads/next
This would avoid danger from "git gc" in submodules and would
get rid of most of the motivation for named branches in the
submodule, I'd think.
Are you assuming that they share their object stores?