Differences from v1: * Reordered some of the patches * added submodule.<name>.active boolean config option which can be used to do more fine grain selection of submodules while still decoupling the existence from the URL. * submodule.<name>.active has precedence over the pathspec stored in submodule.active Brandon Williams (11): submodule--helper: add is_active command submodule status: use submodule--helper is-active submodule deinit: use most reliable url submodule sync: use submodule--helper is-active submodule--helper clone: check for configured submodules using helper submodule: decouple url and submodule existence submodule update: add `--init-active` switch clone: add --submodule-spec=<pathspec> switch completion: clone can initialize specific submodules submodule--helper init: set submodule.<name>.active submodule add: respect submodule.active and submodule.<name>.active Documentation/config.txt | 15 ++++- Documentation/git-clone.txt | 23 ++++--- Documentation/git-submodule.txt | 11 +++- builtin/clone.c | 36 ++++++++++- builtin/submodule--helper.c | 33 ++++++---- contrib/completion/git-completion.bash | 1 + git-submodule.sh | 40 +++++++++--- submodule.c | 36 +++++++++-- t/t7400-submodule-basic.sh | 109 +++++++++++++++++++++++++++++++++ t/t7413-submodule-is-active.sh | 107 ++++++++++++++++++++++++++++++++ 10 files changed, 376 insertions(+), 35 deletions(-) create mode 100755 t/t7413-submodule-is-active.sh -- 2.12.0.246.ga2ecc84866-goog