* [Outreachy PATCH] bundle-uri: use the passed repository for refs and tracing @ 2026-10-28 9:34 Okhuomon Ajayi 2026-10-28 11:05 ` Karthik Nayak 2026-10-29 12:07 ` Patrick Steinhardt 0 siblings, 2 replies; 8+ messages in thread From: Okhuomon Ajayi @ 2026-10-28 9:34 UTC (permalink / raw) To: git Cc: christian.couder, usmanakinyemi202, siddharthasthana31, kaartic.sivaraam, Okhuomon Ajayi 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. Use r for both. Signed-off-by: Okhuomon Ajayi <okhuomonajayi54@gmail.com> --- 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. I left that out. bundle-uri.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bundle-uri.c b/bundle-uri.c index 2bb2eb99e4..0d612d92fe 100644 --- a/bundle-uri.c +++ b/bundle-uri.c @@ -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); @@ -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 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [Outreachy PATCH] bundle-uri: use the passed repository for refs and tracing 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 1 sibling, 2 replies; 8+ messages in thread From: Karthik Nayak @ 2026-10-28 11:05 UTC (permalink / raw) To: Okhuomon Ajayi, git Cc: christian.couder, usmanakinyemi202, siddharthasthana31, kaartic.sivaraam [-- Attachment #1: Type: text/plain, Size: 463 bytes --] Okhuomon Ajayi <okhuomonajayi54@gmail.com> writes: > 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. > Looking at the callers of `unbundle_from_file()` I don't see there is a reason for divergence. i.e. both `r` and `the_repository` should point to the same repository. So this does make sense to me. Thanks [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 690 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Outreachy PATCH] bundle-uri: use the passed repository for refs and tracing 2026-10-28 11:05 ` Karthik Nayak @ 2026-10-28 11:18 ` Okhuomon Ajayi 2026-10-28 16:36 ` Junio C Hamano 1 sibling, 0 replies; 8+ messages in thread From: Okhuomon Ajayi @ 2026-10-28 11:18 UTC (permalink / raw) To: Karthik Nayak Cc: git, christian.couder, usmanakinyemi202, siddharthasthana31, kaartic.sivaraam On Wed, Oct 28, 2026 at 12:05 PM Karthik Nayak <karthik.188@gmail.com> wrote: > Looking at the callers of `unbundle_from_file()` I don't see there is a > reason for divergence. i.e. both `r` and `the_repository` should point > to the same repository. So this does make sense to me. Thanks for checking, Karthik! ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Outreachy PATCH] bundle-uri: use the passed repository for refs and tracing 2026-10-28 11:05 ` Karthik Nayak 2026-10-28 11:18 ` Okhuomon Ajayi @ 2026-10-28 16:36 ` Junio C Hamano 1 sibling, 0 replies; 8+ messages in thread From: Junio C Hamano @ 2026-10-28 16:36 UTC (permalink / raw) To: Karthik Nayak Cc: Okhuomon Ajayi, git, christian.couder, usmanakinyemi202, siddharthasthana31, kaartic.sivaraam Karthik Nayak <karthik.188@gmail.com> writes: > Okhuomon Ajayi <okhuomonajayi54@gmail.com> writes: > >> 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. >> > > Looking at the callers of `unbundle_from_file()` I don't see there is a > reason for divergence. i.e. both `r` and `the_repository` should point > to the same repository. So this does make sense to me. > > Thanks Thanks. Will queue and mark it ready for 'next'. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Outreachy PATCH] bundle-uri: use the passed repository for refs and tracing 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-29 12:07 ` Patrick Steinhardt 2026-10-29 12:47 ` Okhuomon Ajayi 2026-10-29 13:13 ` [Outreachy PATCH v2] bundle-uri: stop using the_repository Okhuomon Ajayi 1 sibling, 2 replies; 8+ messages in thread From: Patrick Steinhardt @ 2026-10-29 12:07 UTC (permalink / raw) To: Okhuomon Ajayi Cc: git, christian.couder, usmanakinyemi202, siddharthasthana31, kaartic.sivaraam On Wed, Oct 28, 2026 at 10:34:55AM +0100, Okhuomon Ajayi wrote: > 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. > > Use r for both. Okay. > Signed-off-by: Okhuomon Ajayi <okhuomonajayi54@gmail.com> > --- > 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. I left that out. That's fine, we know that subsystems may still implicitly depend on it even though they don't declare `USE_THE_REPOSITORY_VARIABLE` anymore. What I find curious though is why you didn't go the last mile so that we could drop that define from this subsystem altogether. There's only two sites left that use `the_repository`, and both of them are trivial to convert (see below patch). So shouldn't we maybe also fix those cases while already at it and then drop the define? Patrick diff --git a/bundle-uri.c b/bundle-uri.c index 1f1683b52e9..abdb99f4375 100644 --- a/bundle-uri.c +++ b/bundle-uri.c @@ -285,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; @@ -293,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")); @@ -383,7 +383,7 @@ 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; @@ -395,7 +395,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) @@ -773,12 +773,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; } ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [Outreachy PATCH] bundle-uri: use the passed repository for refs and tracing 2026-10-29 12:07 ` Patrick Steinhardt @ 2026-10-29 12:47 ` Okhuomon Ajayi 2026-10-29 13:13 ` [Outreachy PATCH v2] bundle-uri: stop using the_repository Okhuomon Ajayi 1 sibling, 0 replies; 8+ messages in thread From: Okhuomon Ajayi @ 2026-10-29 12:47 UTC (permalink / raw) To: Patrick Steinhardt Cc: git, christian.couder, usmanakinyemi202, siddharthasthana31, kaartic.sivaraam On Thu, Oct 29, 2026 at 1:07 PM Patrick Steinhardt <ps@pks.im> wrote: > So shouldn't we maybe also fix those cases while already at it and then > drop the define? Thanks, Patrick. Yes, that makes sense. I applied your diff and bundle-uri.c builds without USE_THE_REPOSITORY_VARIABLE. I'll send a v2 that converts find_temp_filename() and copy_uri_to_file() too and drops the define. Junio, please hold v1 from 'next'; v2 will replace it. ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Outreachy PATCH v2] bundle-uri: stop using the_repository 2026-10-29 12:07 ` Patrick Steinhardt 2026-10-29 12:47 ` Okhuomon Ajayi @ 2026-10-29 13:13 ` Okhuomon Ajayi 2026-10-29 13:37 ` Patrick Steinhardt 1 sibling, 1 reply; 8+ messages in thread From: Okhuomon Ajayi @ 2026-10-29 13:13 UTC (permalink / raw) To: git Cc: christian.couder, usmanakinyemi202, siddharthasthana31, kaartic.sivaraam, ps, karthik.188, Okhuomon Ajayi 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 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [Outreachy PATCH v2] bundle-uri: stop using the_repository 2026-10-29 13:13 ` [Outreachy PATCH v2] bundle-uri: stop using the_repository Okhuomon Ajayi @ 2026-10-29 13:37 ` Patrick Steinhardt 0 siblings, 0 replies; 8+ messages in thread From: Patrick Steinhardt @ 2026-10-29 13:37 UTC (permalink / raw) To: Okhuomon Ajayi Cc: git, christian.couder, usmanakinyemi202, siddharthasthana31, kaartic.sivaraam, karthik.188 On Thu, Oct 29, 2026 at 02:13:25PM +0100, Okhuomon Ajayi wrote: > 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. Thanks, the diff looks as expected. Patrick ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-10-29 13:37 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 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 ` [Outreachy PATCH v2] bundle-uri: stop using the_repository Okhuomon Ajayi 2026-10-29 13:37 ` Patrick Steinhardt
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox