Signed-off-by: Stefan Beller <[email protected]>
---
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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html