Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx> --- builtin/commit.c | 3 +++ t/t7413-submodule--helper.sh | 15 +++++++++++++++ wt-status.c | 2 ++ wt-status.h | 1 + 4 files changed, 21 insertions(+) diff --git a/builtin/commit.c b/builtin/commit.c index b3bd2d4..d29134d 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -1369,6 +1369,9 @@ int cmd_status(int argc, const char **argv, const char *prefix) s.is_initial = get_sha1(s.reference, sha1) ? 1 : 0; s.ignore_submodule_arg = ignore_submodule_arg; + s.submodule_groups = string_list_duplicate( + git_config_get_value_multi("submodule.defaultGroup"), 1); + wt_status_collect(&s); if (0 <= fd) diff --git a/t/t7413-submodule--helper.sh b/t/t7413-submodule--helper.sh index d01cdc6..a3dbfea 100755 --- a/t/t7413-submodule--helper.sh +++ b/t/t7413-submodule--helper.sh @@ -252,4 +252,19 @@ test_expect_success 'git submodule summary respects groups' ' test_cmp expect actual ' +test_expect_success 'git status respects groups' ' + # use setup from previous test + ( + cd super_clone && + git config --add submodule.defaultGroup *bit1 && + git config --add submodule.defaultGroup ./sub0 && + git status >../actual + git config --unset-all submodule.defaultGroup + ) && + test_i18ngrep "modified: sub0" actual && + test_i18ngrep "modified: sub1" actual && + test_i18ngrep ! "modified: sub2" actual && + test_i18ngrep "modified: sub3" actual +' + test_done diff --git a/wt-status.c b/wt-status.c index ef74864..0d494ac 100644 --- a/wt-status.c +++ b/wt-status.c @@ -502,6 +502,7 @@ static void wt_status_collect_changes_worktree(struct wt_status *s) DIFF_OPT_SET(&rev.diffopt, OVERRIDE_SUBMODULE_CONFIG); handle_ignore_submodules_arg(&rev.diffopt, s->ignore_submodule_arg); } + rev.diffopt.submodule_groups = s->submodule_groups; rev.diffopt.format_callback = wt_status_collect_changed_cb; rev.diffopt.format_callback_data = s; copy_pathspec(&rev.prune_data, &s->pathspec); @@ -532,6 +533,7 @@ static void wt_status_collect_changes_index(struct wt_status *s) */ handle_ignore_submodules_arg(&rev.diffopt, "dirty"); } + rev.diffopt.submodule_groups = s->submodule_groups; rev.diffopt.output_format |= DIFF_FORMAT_CALLBACK; rev.diffopt.format_callback = wt_status_collect_updated_cb; diff --git a/wt-status.h b/wt-status.h index c9b3b74..d66a2b5 100644 --- a/wt-status.h +++ b/wt-status.h @@ -73,6 +73,7 @@ struct wt_status { struct string_list change; struct string_list untracked; struct string_list ignored; + struct string_list *submodule_groups; uint32_t untracked_in_ms; }; -- 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