summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Rogers <mattr94@gmail.com>2020-02-10 00:30:58 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-02-10 18:49:12 (GMT)
commit9a83d088ee00dcdab171b2020ab334e369437a33 (patch)
tree8b21354f71400dc4fca02ff91bd76210b3c91b02
parente37efa40e122c4408c89c437e8a375df2147feac (diff)
downloadgit-9a83d088ee00dcdab171b2020ab334e369437a33.zip
git-9a83d088ee00dcdab171b2020ab334e369437a33.tar.gz
git-9a83d088ee00dcdab171b2020ab334e369437a33.tar.bz2
submodule-config: add subomdule config scope
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@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--config.c2
-rw-r--r--config.h1
-rw-r--r--submodule-config.c4
3 files changed, 6 insertions, 1 deletions
diff --git a/config.c b/config.c
index 9b6afca..18a6bdd 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 165cacb..fe0addb 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 8506481..b8e97d8 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;