Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx> --- builtin/submodule--helper.c | 19 +++++++++++++++++-- t/t7413-submodule--helper.sh | 15 +++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c index adb6188..29a345e 100644 --- a/builtin/submodule--helper.c +++ b/builtin/submodule--helper.c @@ -405,6 +405,7 @@ static int module_init(int argc, const char **argv, const char *prefix) { struct pathspec pathspec; struct module_list list = MODULE_LIST_INIT; + struct string_list *group = NULL; int quiet = 0; int i; @@ -427,8 +428,22 @@ static int module_init(int argc, const char **argv, const char *prefix) if (module_list_compute(argc, argv, prefix, &pathspec, &list) < 0) return 1; - for (i = 0; i < list.nr; i++) - init_submodule(list.entries[i]->name, prefix, quiet); + if (!pathspec.nr) + group = string_list_duplicate( + git_config_get_value_multi("submodule.defaultGroup"), 1); + if (group) { + gitmodules_config(); + for (i = 0; i < list.nr; i++) { + const struct submodule *sub = + submodule_from_path(null_sha1, + list.entries[i]->name); + if (submodule_in_group(group, sub)) + init_submodule(list.entries[i]->name, prefix, quiet); + } + string_list_clear(group, 1); + } else + for (i = 0; i < list.nr; i++) + init_submodule(list.entries[i]->name, prefix, quiet); return 0; } diff --git a/t/t7413-submodule--helper.sh b/t/t7413-submodule--helper.sh index 1b5d135..ef12c63 100755 --- a/t/t7413-submodule--helper.sh +++ b/t/t7413-submodule--helper.sh @@ -175,4 +175,19 @@ test_expect_success 'submodule sync respects groups' ' ) ' +test_expect_success 'submodule--helper init respects groups' ' + ( + cd super_clone && + git submodule deinit . && + git config --add submodule.defaultGroup *bit1 && + git config --add submodule.defaultGroup ./sub0 && + git submodule init && + git config --unset-all submodule.defaultGroup && + test "$(git config submodule.sub0.url)" = "$suburl" && + test "$(git config submodule.sub1.url)" = "$suburl" && + test_must_fail git config submodule.sub2.url && + test "$(git config submodule.sub3.url)" = "$suburl" + ) +' + test_done -- 2.8.0.41.g8d9aeb3 -- 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