init: add --submodules to sync manifest submodules

repo sync can sync submodules via the --fetch-submodules option.
However, if the manifest repo has submodules, those will not be synced.
Having submodules in the manifest repo -- while not commonly done -- can
be useful for inheriting a manifest from another project using <include>
and layering changes on top of it.  In this way, you can avoid having to
deal with merge conflicts between your own manifests and the other
project's manifests (for example, if you're managing an Android fork).

Add a --submodule option to init that automatically syncs the submodules
in the manifest repo whenever the manifest repo changes.

Change-Id: I45d34f04517774c1462d7f233f482d1d81a332a8
Signed-off-by: Martin Kelly <mkelly@xevo.com>
5 files changed
tree: 1fe598a2b3e89ae9a56fd640e6cd5b53a8704c7a
  1. docs/
  2. hooks/
  3. subcmds/
  4. tests/
  5. .flake8
  6. .gitattributes
  7. .gitignore
  8. .mailmap
  9. .project
  10. .pydevproject
  11. color.py
  12. command.py
  13. COPYING
  14. editor.py
  15. error.py
  16. git_command.py
  17. git_config.py
  18. git_refs.py
  19. git_ssh
  20. gitc_utils.py
  21. main.py
  22. manifest_xml.py
  23. pager.py
  24. progress.py
  25. project.py
  26. pyversion.py
  27. README.md
  28. repo
  29. SUBMITTING_PATCHES.md
  30. trace.py
  31. wrapper.py
README.md

repo

Repo is a tool built on top of Git. Repo helps manage many Git repositories, does the uploads to revision control systems, and automates parts of the development workflow. Repo is not meant to replace Git, only to make it easier to work with Git. The repo command is an executable Python script that you can put anywhere in your path.