aboutsummaryrefslogtreecommitdiffstats
path: root/remote.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2025-03-05 10:37:43 -0800
committerJunio C Hamano <gitster@pobox.com>2025-03-05 10:37:43 -0800
commitfeffb34257ee8eef18cc6a3a5a4f01d40720bda1 (patch)
tree02842b3ce862be72ad6a0ace18aca0fa1a4f1ca7 /remote.c
parentGit 2.49-rc1 (diff)
parentpath: adjust last remaining users of `the_repository` (diff)
downloadgit-feffb34257ee8eef18cc6a3a5a4f01d40720bda1.tar.gz
git-feffb34257ee8eef18cc6a3a5a4f01d40720bda1.zip
Merge branch 'ps/path-sans-the-repository'
The path.[ch] API takes an explicit repository parameter passed throughout the callchain, instead of relying on the_repository singleton instance. * ps/path-sans-the-repository: path: adjust last remaining users of `the_repository` environment: move access to "core.sharedRepository" into repo settings environment: move access to "core.hooksPath" into repo settings repo-settings: introduce function to clear struct path: drop `git_path()` in favor of `repo_git_path()` rerere: let `rerere_path()` write paths into a caller-provided buffer path: drop `git_common_path()` in favor of `repo_common_path()` worktree: return allocated string from `get_worktree_git_dir()` path: drop `git_path_buf()` in favor of `repo_git_path_replace()` path: drop `git_pathdup()` in favor of `repo_git_path()` path: drop unused `strbuf_git_path()` function path: refactor `repo_submodule_path()` family of functions submodule: refactor `submodule_to_gitdir()` to accept a repo path: refactor `repo_worktree_path()` family of functions path: refactor `repo_git_path()` family of functions path: refactor `repo_common_path()` family of functions
Diffstat (limited to 'remote.c')
-rw-r--r--remote.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/remote.c b/remote.c
index c9c1384c1d..e609cf5c56 100644
--- a/remote.c
+++ b/remote.c
@@ -321,10 +321,11 @@ static void read_remotes_file(struct remote_state *remote_state,
struct remote *remote)
{
struct strbuf buf = STRBUF_INIT;
- FILE *f = fopen_or_warn(git_path("remotes/%s", remote->name), "r");
+ FILE *f = fopen_or_warn(repo_git_path_append(the_repository, &buf,
+ "remotes/%s", remote->name), "r");
if (!f)
- return;
+ goto out;
warn_about_deprecated_remote_type("remotes", remote);
@@ -343,8 +344,10 @@ static void read_remotes_file(struct remote_state *remote_state,
else if (skip_prefix(buf.buf, "Pull:", &v))
refspec_append(&remote->fetch, skip_spaces(v));
}
- strbuf_release(&buf);
fclose(f);
+
+out:
+ strbuf_release(&buf);
}
static void read_branches_file(struct remote_state *remote_state,
@@ -352,20 +355,19 @@ static void read_branches_file(struct remote_state *remote_state,
{
char *frag, *to_free = NULL;
struct strbuf buf = STRBUF_INIT;
- FILE *f = fopen_or_warn(git_path("branches/%s", remote->name), "r");
+ FILE *f = fopen_or_warn(repo_git_path_append(the_repository, &buf,
+ "branches/%s", remote->name), "r");
if (!f)
- return;
+ goto out;
warn_about_deprecated_remote_type("branches", remote);
strbuf_getline_lf(&buf, f);
fclose(f);
strbuf_trim(&buf);
- if (!buf.len) {
- strbuf_release(&buf);
- return;
- }
+ if (!buf.len)
+ goto out;
remote->configured_in_repo = 1;
remote->origin = REMOTE_BRANCHES;
@@ -393,6 +395,7 @@ static void read_branches_file(struct remote_state *remote_state,
refspec_appendf(&remote->push, "HEAD:refs/heads/%s", frag);
remote->fetch_tags = 1; /* always auto-follow */
+out:
strbuf_release(&buf);
free(to_free);
}