aboutsummaryrefslogtreecommitdiffstats
path: root/config.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2022-10-25 17:11:44 -0700
committerJunio C Hamano <gitster@pobox.com>2022-10-25 17:11:44 -0700
commit777f548b5a9e409b4c936a32a2cb61fd7a1bb45c (patch)
tree52dc51c3b3eb922d52ad5f1c08cde3f62ff27745 /config.c
parentb988427918c767fc7782a387c9c8de9e147b983d (diff)
parentecec57b3c9731cf81cd1b9d515334168c2c68f5b (diff)
downloadgit-777f548b5a9e409b4c936a32a2cb61fd7a1bb45c.tar.gz
Merge branch 'gc/bare-repo-discovery'
Allow configuration files in "protected" scopes to include other configuration files. * gc/bare-repo-discovery: config: respect includes in protected config
Diffstat (limited to 'config.c')
-rw-r--r--config.c30
1 files changed, 8 insertions, 22 deletions
diff --git a/config.c b/config.c
index cbb5a3bab7..c157fb5ae3 100644
--- a/config.c
+++ b/config.c
@@ -2392,11 +2392,6 @@ int git_configset_add_file(struct config_set *cs, const char *filename)
return git_config_from_file(config_set_callback, filename, cs);
}
-int git_configset_add_parameters(struct config_set *cs)
-{
- return git_config_from_parameters(config_set_callback, cs);
-}
-
int git_configset_get_value(struct config_set *cs, const char *key, const char **value)
{
const struct string_list *values = NULL;
@@ -2641,24 +2636,15 @@ int repo_config_get_pathname(struct repository *repo,
/* Read values into protected_config. */
static void read_protected_config(void)
{
- char *xdg_config = NULL, *user_config = NULL, *system_config = NULL;
-
+ struct config_options opts = {
+ .respect_includes = 1,
+ .ignore_repo = 1,
+ .ignore_worktree = 1,
+ .system_gently = 1,
+ };
git_configset_init(&protected_config);
-
- system_config = git_system_config();
- git_global_config(&user_config, &xdg_config);
-
- if (system_config)
- git_configset_add_file(&protected_config, system_config);
- if (xdg_config)
- git_configset_add_file(&protected_config, xdg_config);
- if (user_config)
- git_configset_add_file(&protected_config, user_config);
- git_configset_add_parameters(&protected_config);
-
- free(system_config);
- free(xdg_config);
- free(user_config);
+ config_with_options(config_set_callback, &protected_config,
+ NULL, &opts);
}
void git_protected_config(config_fn_t fn, void *data)