submodule-config: pass repository as argument to config_from_gitmodules

Generalize config_from_gitmodules() to accept a repository as an argument.

This is in preparation to reuse the function in repo_read_gitmodules in
order to have a single point where the '.gitmodules' file is accessed.

Signed-off-by: Antonio Ospite <ao2@ao2.it>
Acked-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Antonio Ospite
2018-06-26 12:47:09 +02:00
committed by Junio C Hamano
parent 588929d54d
commit 9a0fb3e772

View File

@@ -680,10 +680,10 @@ void submodule_free(struct repository *r)
* Runs the provided config function on the '.gitmodules' file found in the * Runs the provided config function on the '.gitmodules' file found in the
* working directory. * working directory.
*/ */
static void config_from_gitmodules(config_fn_t fn, void *data) static void config_from_gitmodules(config_fn_t fn, struct repository *repo, void *data)
{ {
if (the_repository->worktree) { if (repo->worktree) {
char *file = repo_worktree_path(the_repository, GITMODULES_FILE); char *file = repo_worktree_path(repo, GITMODULES_FILE);
git_config_from_file(fn, file, data); git_config_from_file(fn, file, data);
free(file); free(file);
} }
@@ -714,7 +714,7 @@ void fetch_config_from_gitmodules(int *max_children, int *recurse_submodules)
.max_children = max_children, .max_children = max_children,
.recurse_submodules = recurse_submodules .recurse_submodules = recurse_submodules
}; };
config_from_gitmodules(gitmodules_fetch_config, &config); config_from_gitmodules(gitmodules_fetch_config, the_repository, &config);
} }
static int gitmodules_update_clone_config(const char *var, const char *value, static int gitmodules_update_clone_config(const char *var, const char *value,
@@ -728,5 +728,5 @@ static int gitmodules_update_clone_config(const char *var, const char *value,
void update_clone_config_from_gitmodules(int *max_jobs) void update_clone_config_from_gitmodules(int *max_jobs)
{ {
config_from_gitmodules(gitmodules_update_clone_config, &max_jobs); config_from_gitmodules(gitmodules_update_clone_config, the_repository, &max_jobs);
} }