"Matthew Rogers via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > From: Matthew Rogers <mattr94@xxxxxxxxx> > > Before the changes to teach git_config_source to remember scope > information submodule-config.c never needed to consider the question of > config scope. Even though zeroing out git_config_source is still > correct and preserved the previous behavior of setting the scope to > CONFIG_SCOPE_UNKNOWN, it's better to be explicit about such situations > by explicitly setting the scope. As none of the current config_scope > enumerations make sense we create CONFIG_SCOPE_SUBMODULE to describe the > situation. > > Signed-off-by: Matthew Rogers <mattr94@xxxxxxxxx> > --- Other than a typo on the title, I think this one is perfect ;-) Will queue. > config.c | 2 ++ > config.h | 1 + > submodule-config.c | 4 +++- > 3 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/config.c b/config.c > index 9b6afca210..18a6bdd9ff 100644 > --- a/config.c > +++ b/config.c > @@ -3311,6 +3311,8 @@ const char *config_scope_name(enum config_scope scope) > return "worktree"; > case CONFIG_SCOPE_COMMAND: > return "command"; > + case CONFIG_SCOPE_SUBMODULE: > + return "submodule"; > default: > return "unknown"; > } > diff --git a/config.h b/config.h > index 165cacb7da..fe0addb0dc 100644 > --- a/config.h > +++ b/config.h > @@ -42,6 +42,7 @@ enum config_scope { > CONFIG_SCOPE_LOCAL, > CONFIG_SCOPE_WORKTREE, > CONFIG_SCOPE_COMMAND, > + CONFIG_SCOPE_SUBMODULE, > }; > const char *config_scope_name(enum config_scope scope); > > diff --git a/submodule-config.c b/submodule-config.c > index 85064810b2..b8e97d8ae8 100644 > --- a/submodule-config.c > +++ b/submodule-config.c > @@ -635,7 +635,9 @@ static void submodule_cache_check_init(struct repository *repo) > static void config_from_gitmodules(config_fn_t fn, struct repository *repo, void *data) > { > if (repo->worktree) { > - struct git_config_source config_source = { 0 }; > + struct git_config_source config_source = { > + 0, .scope = CONFIG_SCOPE_SUBMODULE > + }; > const struct config_options opts = { 0 }; > struct object_id oid; > char *file;