From: Okhuomon Ajayi <okhuomonajayi54@gmail.com>
To: git@vger.kernel.org
Cc: christian.couder@gmail.com, usmanakinyemi202@gmail.com,
siddharthasthana31@gmail.com, kaartic.sivaraam@gmail.com,
ps@pks.im, karthik.188@gmail.com,
Okhuomon Ajayi <okhuomonajayi54@gmail.com>
Subject: [Outreachy PATCH v2] bundle-uri: stop using the_repository
Date: Thu, 29 Oct 2026 14:13:25 +0100 [thread overview]
Message-ID: <20261029131325.79176-1-okhuomonajayi54@gmail.com> (raw)
In-Reply-To: <auM3DGcWTL5OdRnD@pks.im>
unbundle_from_file() receives r and unbundles the objects into
it, but reads and writes the refs in the_repository.
fetch_bundle_uri() also has r, but uses the_repository for its
trace2 region. find_temp_filename() and copy_uri_to_file() also
use the_repository, even though their only caller,
fetch_bundle_uri_internal(), has r.
Use r in all of these places, passing it to find_temp_filename()
and copy_uri_to_file(). With that, bundle-uri.c no longer uses
the_repository, so drop USE_THE_REPOSITORY_VARIABLE.
Signed-off-by: Okhuomon Ajayi <okhuomonajayi54@gmail.com>
---
Changes since v1:
- Also pass the repository to find_temp_filename() and
copy_uri_to_file(), and drop USE_THE_REPOSITORY_VARIABLE,
as suggested by Patrick.
Thanks, Patrick, for the suggestion and the diff, and Karthik
for the review.
unbundle_from_file() still depends on the_repository through
fetch_pack_fsck_objects(), which reads fetch.fsckObjects and
transfer.fsckObjects from the_repository's config.
bundle-uri.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/bundle-uri.c b/bundle-uri.c
index 2bb2eb99e4..9797eaed9a 100644
--- a/bundle-uri.c
+++ b/bundle-uri.c
@@ -1,4 +1,3 @@
-#define USE_THE_REPOSITORY_VARIABLE
#define DISABLE_SIGN_COMPARE_WARNINGS
#include "git-compat-util.h"
@@ -286,7 +285,7 @@ int bundle_uri_parse_config_format(const char *uri,
return result;
}
-static char *find_temp_filename(void)
+static char *find_temp_filename(struct repository *r)
{
int fd;
struct strbuf name = STRBUF_INIT;
@@ -294,7 +293,7 @@ static char *find_temp_filename(void)
* Find a temporary filename that is available. This is briefly
* racy, but unlikely to collide.
*/
- fd = odb_mkstemp(the_repository->objects, &name,
+ fd = odb_mkstemp(r->objects, &name,
"bundles/tmp_uri_XXXXXX");
if (fd < 0) {
warning(_("failed to create temporary file"));
@@ -384,7 +383,8 @@ static int download_https_uri_to_file(const char *file, const char *uri)
return result;
}
-static int copy_uri_to_file(const char *filename, const char *uri)
+static int copy_uri_to_file(struct repository *r,
+ const char *filename, const char *uri)
{
const char *out;
@@ -396,7 +396,7 @@ static int copy_uri_to_file(const char *filename, const char *uri)
uri = out;
/* Copy as a file */
- return copy_file(the_repository, filename, uri, 0);
+ return copy_file(r, filename, uri, 0);
}
static int unbundle_from_file(struct repository *r, const char *file)
@@ -448,9 +448,9 @@ static int unbundle_from_file(struct repository *r, const char *file)
strbuf_setlen(&bundle_ref, bundle_prefix_len);
strbuf_addstr(&bundle_ref, branch_name);
- has_old = !refs_read_ref(get_main_ref_store(the_repository),
+ has_old = !refs_read_ref(get_main_ref_store(r),
bundle_ref.buf, &old_oid);
- refs_update_ref(get_main_ref_store(the_repository),
+ refs_update_ref(get_main_ref_store(r),
"fetched bundle", bundle_ref.buf, oid,
has_old ? &old_oid : NULL,
0, UPDATE_REFS_MSG_ON_ERR);
@@ -774,12 +774,12 @@ static int fetch_bundle_uri_internal(struct repository *r,
}
if (!bundle->file &&
- !(bundle->file = find_temp_filename())) {
+ !(bundle->file = find_temp_filename(r))) {
result = -1;
goto cleanup;
}
- if ((result = copy_uri_to_file(bundle->file, bundle->uri))) {
+ if ((result = copy_uri_to_file(r, bundle->file, bundle->uri))) {
warning(_("failed to download bundle from URI '%s'"), bundle->uri);
goto cleanup;
}
@@ -859,7 +859,7 @@ int fetch_bundle_uri(struct repository *r, const char *uri,
.id = xstrdup(""),
};
- trace2_region_enter("fetch", "fetch-bundle-uri", the_repository);
+ trace2_region_enter("fetch", "fetch-bundle-uri", r);
init_bundle_list(&list);
@@ -886,7 +886,7 @@ int fetch_bundle_uri(struct repository *r, const char *uri,
for_all_bundles_in_list(&list, unlink_bundle, NULL);
clear_bundle_list(&list);
clear_remote_bundle_info(&bundle, NULL);
- trace2_region_leave("fetch", "fetch-bundle-uri", the_repository);
+ trace2_region_leave("fetch", "fetch-bundle-uri", r);
return result;
}
base-commit: 37b3475fb530c14109211faca33716a173db61ed
--
2.56.0
next prev parent reply other threads:[~2026-10-29 13:13 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-28 9:34 [Outreachy PATCH] bundle-uri: use the passed repository for refs and tracing Okhuomon Ajayi
2026-10-28 11:05 ` Karthik Nayak
2026-10-28 11:18 ` Okhuomon Ajayi
2026-10-28 16:36 ` Junio C Hamano
2026-10-29 12:07 ` Patrick Steinhardt
2026-10-29 12:47 ` Okhuomon Ajayi
2026-10-29 13:13 ` Okhuomon Ajayi [this message]
2026-10-29 13:37 ` [Outreachy PATCH v2] bundle-uri: stop using the_repository Patrick Steinhardt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261029131325.79176-1-okhuomonajayi54@gmail.com \
--to=okhuomonajayi54@gmail.com \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=kaartic.sivaraam@gmail.com \
--cc=karthik.188@gmail.com \
--cc=ps@pks.im \
--cc=siddharthasthana31@gmail.com \
--cc=usmanakinyemi202@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox