diff options
author | Antonio Ospite <ao2@ao2.it> | 2018-06-26 12:47:06 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-06-26 12:56:11 -0700 |
commit | 71a6953d164012647fcb9682e4e705ba61b95929 (patch) | |
tree | cf47a6c682cb4dc81cfc893db086530d80395294 /submodule-config.c | |
parent | ad136370b2a26fd55f446722ff7bf5b383e8eca0 (diff) | |
download | git-71a6953d164012647fcb9682e4e705ba61b95929.tar.gz |
submodule-config: add helper function to get 'fetch' config from .gitmodules
Add a helper function to make it clearer that retrieving 'fetch'
configuration from the .gitmodules file is a special case supported
solely for backward compatibility purposes.
This change removes one direct use of 'config_from_gitmodules' in code
not strictly related to submodules, in the effort to communicate better
that .gitmodules is not to be used as a mechanism to store arbitrary
configuration in the repository that any command can retrieve.
Signed-off-by: Antonio Ospite <ao2@ao2.it>
Acked-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'submodule-config.c')
-rw-r--r-- | submodule-config.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/submodule-config.c b/submodule-config.c index b431555db4..f44d6a7775 100644 --- a/submodule-config.c +++ b/submodule-config.c @@ -688,3 +688,31 @@ void config_from_gitmodules(config_fn_t fn, void *data) free(file); } } + +struct fetch_config { + int *max_children; + int *recurse_submodules; +}; + +static int gitmodules_fetch_config(const char *var, const char *value, void *cb) +{ + struct fetch_config *config = cb; + if (!strcmp(var, "submodule.fetchjobs")) { + *(config->max_children) = parse_submodule_fetchjobs(var, value); + return 0; + } else if (!strcmp(var, "fetch.recursesubmodules")) { + *(config->recurse_submodules) = parse_fetch_recurse_submodules_arg(var, value); + return 0; + } + + return 0; +} + +void fetch_config_from_gitmodules(int *max_children, int *recurse_submodules) +{ + struct fetch_config config = { + .max_children = max_children, + .recurse_submodules = recurse_submodules + }; + config_from_gitmodules(gitmodules_fetch_config, &config); +} |