aboutsummaryrefslogtreecommitdiffstats
path: root/remote.c
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2025-02-07 12:03:37 +0100
committerJunio C Hamano <gitster@pobox.com>2025-02-28 13:54:11 -0800
commit88dd321cfedc6ee190dfafe4670a83ea33cdf4a3 (patch)
tree0e94e96531181af8d226066182f92e8ae90da1ab /remote.c
parent8ee018d863e521f32a9cb92db66c25e848b5e0d0 (diff)
downloadgit-88dd321cfedc6ee190dfafe4670a83ea33cdf4a3.tar.gz
path: drop `git_path()` in favor of `repo_git_path()`
Remove `git_path()` in favor of the `repo_git_path()` family of functions, which makes the implicit dependency on `the_repository` go away. Note that `git_path()` returned a string allocated via `get_pathname()`, which uses a rotating set of statically allocated buffers. Consequently, callers didn't have to free the returned string. The same isn't true for `repo_common_path()`, so we also have to add logic to free the returned strings. This refactoring also allows us to remove `repo_common_pathv()` as well as `get_pathname()` from the public interface. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
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 1779f0e7bb..81d151a507 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);
}