summaryrefslogtreecommitdiff
path: root/submodule-config.c
diff options
context:
space:
mode:
authorAntonio Ospite <ao2@ao2.it>2018-06-26 10:47:06 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-06-26 19:56:11 (GMT)
commit71a6953d164012647fcb9682e4e705ba61b95929 (patch)
treecf47a6c682cb4dc81cfc893db086530d80395294 /submodule-config.c
parentad136370b2a26fd55f446722ff7bf5b383e8eca0 (diff)
downloadgit-71a6953d164012647fcb9682e4e705ba61b95929.zip
git-71a6953d164012647fcb9682e4e705ba61b95929.tar.gz
git-71a6953d164012647fcb9682e4e705ba61b95929.tar.bz2
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.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/submodule-config.c b/submodule-config.c
index b431555..f44d6a7 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);
+}