The current submodule flow relies on a complicated branching scheme
that we don't want to continue supporting:
https://sites.google.com/a/chromium.org/dev/developers/how-tos/git-repo
When we make the final switch to git, the current refs/heads/git-svn
branch is going to be our starting point. We won't do any more
branching to add submodule information, and all of the commits that
contain submodule information won't be reachable from
refs/heads/master.
It is possible that we'll bring back submodule support after the git
migration, but there's a bit of complexity(*) to that, and it's low on
our priority list right now. The reason we don't dismantle the
submodule flow before the migration is that doing so would probably
break existing tools and flows, and there's no good justification for
it. All of our energy is focused on achieving the git migration.
(*) Two problems:
1. The DEPS file -- used by gclient -- and the .gitmodules and git
submodule files -- used by the submodule flow -- contain redundant
information. We have no intention of deprecating DEPS or gclient in
the short term. To have any kind of sane submodule support
co-existing with DEPS/gclient, we must be absolutely certain that DEPS
and .gitmodules/git-submodule-files are always in sync. We can add
client git hooks that do the necessary munging when a developer is
working up a patch locally; but we don't have an airtight enforcement
mechanism to ensure that a change which introduces out-of-sync DEPS
and .gitmodules never lands in the upstream repository.
2. The code review tool currently has no support for changes to git
submodule files.
Stefan