Changes since v2: * I replaced one 0 by NULL as pointed out by Ramsay, and reformatted the line to stay within 80 characters: --- a/builtin/clone.c +++ b/builtin/clone.c @@ -908,8 +908,10 @@ int cmd_clone(int argc, const char **argv, const char *prefix) struct string_list_item *item; struct strbuf sb = STRBUF_INIT; for_each_string_list_item(item, &init_submodules) { - strbuf_addf(&sb, "submodule.defaultUpdatePath=%s", item->string); - string_list_append(&option_config, strbuf_detach(&sb, 0)); + strbuf_addf(&sb, "submodule.defaultUpdatePath=%s", + item->string); + string_list_append(&option_config, + strbuf_detach(&sb, NULL)); } } Changes since v1: * fixed a broken && chain in a subshell for testing, as pointed out by Eric! This was part of the former series 'submodule groups'. However the labeling was ripped out and goes in its own series sb/pathspec-label. First we introduce a switch `--init-default-path` for `git submodule update` which will read the pathspec to initialize the submodules not from the command line but from `submodule.defaultUpdatePath`, which can be configured permanently. The second patch utilizes this by having `clone` set that config option and using that new option when calling to update the submodules. Thanks, Stefan Stefan Beller (2): submodule update: add `--init-default-path` switch clone: add --init-submodule=<pathspec> switch Documentation/config.txt | 5 ++ Documentation/git-clone.txt | 25 +++++--- Documentation/git-submodule.txt | 11 +++- builtin/clone.c | 36 ++++++++++- git-submodule.sh | 21 ++++++- t/t7400-submodule-basic.sh | 134 ++++++++++++++++++++++++++++++++++++++++ 6 files changed, 218 insertions(+), 14 deletions(-) -- 2.9.0.rc0.2.g145fc64 base-commit: 3a0f269e7c82aa3a87323cb7ae04ac5f129f036b -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html