config: don't have setters depend on the_repository

Some of the setters that accept a `struct repository` still implicitly
rely on `the_repository` via `git_config_set_multivar_in_file()`. While
this function would typically use the caller-provided path, it knows to
fall back to using the configuration path indicated by `the_repository`.

Adapt those functions to instead use the caller-provided repository.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt
2024-08-13 11:14:15 +02:00
committed by Junio C Hamano
parent 76fc9906f2
commit c2ba4e3b5c

View File

@ -3220,8 +3220,8 @@ int repo_config_set_worktree_gently(struct repository *r,
/* Only use worktree-specific config if it is already enabled. */ /* Only use worktree-specific config if it is already enabled. */
if (r->repository_format_worktree_config) { if (r->repository_format_worktree_config) {
char *file = repo_git_path(r, "config.worktree"); char *file = repo_git_path(r, "config.worktree");
int ret = git_config_set_multivar_in_file_gently( int ret = repo_config_set_multivar_in_file_gently(
file, key, value, NULL, NULL, 0); r, file, key, value, NULL, NULL, 0);
free(file); free(file);
return ret; return ret;
} }
@ -3613,10 +3613,10 @@ int repo_config_set_multivar_gently(struct repository *r, const char *key,
const char *value_pattern, unsigned flags) const char *value_pattern, unsigned flags)
{ {
char *file = repo_git_path(r, "config"); char *file = repo_git_path(r, "config");
int res = git_config_set_multivar_in_file_gently(file, int res = repo_config_set_multivar_in_file_gently(r, file,
key, value, key, value,
value_pattern, value_pattern,
NULL, flags); NULL, flags);
free(file); free(file);
return res; return res;
} }
@ -3626,8 +3626,8 @@ void repo_config_set_multivar(struct repository *r,
const char *value_pattern, unsigned flags) const char *value_pattern, unsigned flags)
{ {
char *file = repo_git_path(r, "config"); char *file = repo_git_path(r, "config");
git_config_set_multivar_in_file(file, key, value, repo_config_set_multivar_in_file(r, file, key, value,
value_pattern, flags); value_pattern, flags);
free(file); free(file);
} }