From: Derrick Stolee <derrickstolee@github.com>
To: Victoria Dye <vdye@github.com>,
Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>,
git@vger.kernel.org
Cc: gitster@pobox.com, me@ttaylorr.com, newren@gmail.com,
avarab@gmail.com, mjcheetham@outlook.com, steadmon@google.com,
chooglen@google.com, jonathantanmy@google.com,
dyroneteng@gmail.com
Subject: Re: [PATCH v2 9/9] clone: unbundle the advertised bundles
Date: Fri, 2 Dec 2022 11:16:41 -0500 [thread overview]
Message-ID: <e4b6363a-58a4-a11e-d33e-c0bc9c755d72@github.com> (raw)
In-Reply-To: <9522d667-da4d-6eb0-8f1c-1396ebc0351c@github.com>
On 11/28/2022 8:59 PM, Victoria Dye wrote:
> Derrick Stolee via GitGitGadget wrote:
>> From: Derrick Stolee <derrickstolee@github.com>
>>
>> A previous change introduced the transport methods to acquire a bundle
>> list from the 'bundle-uri' protocol v2 command, when advertised _and_
>> when the client has chosen to enable the feature.
>>
>> Teach Git to download and unbundle the data advertised by those bundles
>> during 'git clone'.
>>
>> Also, since the --bundle-uri option exists, we do not want to mix the
>> advertised bundles with the user-specified bundles.
>>
>> Signed-off-by: Derrick Stolee <derrickstolee@github.com>
>> ---
>> builtin/clone.c | 26 +++++++++++++++++----
>> t/t5601-clone.sh | 59 ++++++++++++++++++++++++++++++++++++++++++++++++
>> 2 files changed, 80 insertions(+), 5 deletions(-)
>>
>> diff --git a/builtin/clone.c b/builtin/clone.c
>> index 22b1e506452..09f10477ed6 100644
>> --- a/builtin/clone.c
>> +++ b/builtin/clone.c
>> @@ -1267,11 +1267,27 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
>> if (refs)
>> mapped_refs = wanted_peer_refs(refs, &remote->fetch);
>>
>> - /*
>> - * Populate transport->got_remote_bundle_uri and
>> - * transport->bundle_uri. We might get nothing.
>> - */
>> - transport_get_remote_bundle_uri(transport, 1);
>> + if (!bundle_uri) {
>> + /*
>> + * Populate transport->got_remote_bundle_uri and
>> + * transport->bundle_uri. We might get nothing.
>> + */
>> + transport_get_remote_bundle_uri(transport, 1);
>> +
>> + if (transport->bundles &&
>> + hashmap_get_size(&transport->bundles->bundles)) {
>> + /* At this point, we need the_repository to match the cloned repo. */
>> + if (repo_init(the_repository, git_dir, work_tree))
>> + warning(_("failed to initialize the repo, skipping bundle URI"));
>> + if (fetch_bundle_list(the_repository,
>> + remote->url[0],
>> + transport->bundles))
>
> If the repo initialization fails, this line is still executed. Should the
> condition be 'else if' to avoid that?
>
> Otherwise, all of the added logic looks good to me.
Yes, it should. An earlier version of this follows the correct if/else if
pattern.
>> diff --git a/t/t5601-clone.sh b/t/t5601-clone.sh
>> index 45f0803ed4d..d1d8139751e 100755
>> --- a/t/t5601-clone.sh
>> +++ b/t/t5601-clone.sh
>
> Per the commit message:
>
>> Also, since the --bundle-uri option exists, we do not want to mix the
>> advertised bundles with the user-specified bundles.
>
> Could you add a test verifying that '--bundle-uri' causes 'clone' to skip
> bundle URI auto-discovery? It's clear from the implementation above that
> 'clone' is currently doing that as-expected, but it might be nice to have
> the test for regression testing purposes.
I can add that to the lib-bundle-uri-protocol.sh tests pretty easily.
Thanks,
-Stolee
next prev parent reply other threads:[~2022-12-02 16:18 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-01 1:07 [PATCH 0/9] Bundle URIs IV: advertise over protocol v2 Derrick Stolee via GitGitGadget
2022-11-01 1:07 ` [PATCH 1/9] protocol v2: add server-side "bundle-uri" skeleton Ævar Arnfjörð Bjarmason via GitGitGadget
2022-11-08 17:08 ` SZEDER Gábor
2022-11-11 1:59 ` Victoria Dye
2022-11-16 14:08 ` Derrick Stolee
2022-11-01 1:07 ` [PATCH 2/9] bundle-uri client: add minimal NOOP client Ævar Arnfjörð Bjarmason via GitGitGadget
2022-11-01 1:07 ` [PATCH 3/9] bundle-uri client: add helper for testing server Ævar Arnfjörð Bjarmason via GitGitGadget
2022-11-01 1:07 ` [PATCH 4/9] bundle-uri: serve bundle.* keys from config Derrick Stolee via GitGitGadget
2022-11-01 1:07 ` [PATCH 5/9] bundle-uri client: add boolean transfer.bundleURI setting Ævar Arnfjörð Bjarmason via GitGitGadget
2022-11-01 1:07 ` [PATCH 6/9] strbuf: reintroduce strbuf_parent_directory() Derrick Stolee via GitGitGadget
2022-11-03 9:28 ` Phillip Wood
2022-11-03 9:49 ` Ævar Arnfjörð Bjarmason
2022-11-01 1:07 ` [PATCH 7/9] bundle-uri: allow relative URLs in bundle lists Derrick Stolee via GitGitGadget
2022-11-01 1:07 ` [PATCH 8/9] bundle-uri: download bundles from an advertised list Derrick Stolee via GitGitGadget
2022-11-01 1:07 ` [PATCH 9/9] clone: unbundle the advertised bundles Derrick Stolee via GitGitGadget
2022-11-16 19:51 ` [PATCH v2 0/9] Bundle URIs IV: advertise over protocol v2 Derrick Stolee via GitGitGadget
2022-11-16 19:51 ` [PATCH v2 1/9] protocol v2: add server-side "bundle-uri" skeleton Ævar Arnfjörð Bjarmason via GitGitGadget
2022-11-16 19:51 ` [PATCH v2 2/9] bundle-uri client: add minimal NOOP client Ævar Arnfjörð Bjarmason via GitGitGadget
2022-11-29 0:57 ` Victoria Dye
2022-12-02 15:00 ` Derrick Stolee
2022-11-16 19:51 ` [PATCH v2 3/9] bundle-uri client: add helper for testing server Ævar Arnfjörð Bjarmason via GitGitGadget
2022-11-29 0:59 ` Victoria Dye
2022-12-02 15:28 ` Derrick Stolee
2022-11-16 19:51 ` [PATCH v2 4/9] bundle-uri: serve bundle.* keys from config Derrick Stolee via GitGitGadget
2022-11-29 1:00 ` Victoria Dye
2022-11-16 19:51 ` [PATCH v2 5/9] bundle-uri client: add boolean transfer.bundleURI setting Ævar Arnfjörð Bjarmason via GitGitGadget
2022-11-29 1:03 ` Victoria Dye
2022-12-02 15:38 ` Derrick Stolee
2022-11-16 19:51 ` [PATCH v2 6/9] strbuf: introduce strbuf_strip_file_from_path() Derrick Stolee via GitGitGadget
2022-11-29 1:03 ` Victoria Dye
2022-12-02 15:40 ` Derrick Stolee
2022-12-02 18:32 ` Ævar Arnfjörð Bjarmason
2022-12-05 15:11 ` Derrick Stolee
2022-11-16 19:51 ` [PATCH v2 7/9] bundle-uri: allow relative URLs in bundle lists Derrick Stolee via GitGitGadget
2022-11-29 1:25 ` Victoria Dye
2022-12-02 16:03 ` Derrick Stolee
2022-11-16 19:51 ` [PATCH v2 8/9] bundle-uri: download bundles from an advertised list Derrick Stolee via GitGitGadget
2022-11-29 1:51 ` Victoria Dye
2022-11-16 19:51 ` [PATCH v2 9/9] clone: unbundle the advertised bundles Derrick Stolee via GitGitGadget
2022-11-29 1:59 ` Victoria Dye
2022-12-02 16:16 ` Derrick Stolee [this message]
2022-12-05 17:50 ` [PATCH v3 00/11] Bundle URIs IV: advertise over protocol v2 Derrick Stolee via GitGitGadget
2022-12-05 17:50 ` [PATCH v3 01/11] protocol v2: add server-side "bundle-uri" skeleton Ævar Arnfjörð Bjarmason via GitGitGadget
2022-12-05 23:31 ` Victoria Dye
2022-12-05 17:50 ` [PATCH v3 02/11] t: create test harness for 'bundle-uri' command Ævar Arnfjörð Bjarmason via GitGitGadget
2022-12-05 17:50 ` [PATCH v3 03/11] clone: request the 'bundle-uri' command when available Ævar Arnfjörð Bjarmason via GitGitGadget
2022-12-05 17:50 ` [PATCH v3 04/11] bundle-uri client: add boolean transfer.bundleURI setting Ævar Arnfjörð Bjarmason via GitGitGadget
2022-12-05 23:32 ` Victoria Dye
2022-12-07 15:20 ` Derrick Stolee
2022-12-05 17:50 ` [PATCH v3 05/11] transport: rename got_remote_heads Derrick Stolee via GitGitGadget
2022-12-05 17:50 ` [PATCH v3 06/11] bundle-uri client: add helper for testing server Ævar Arnfjörð Bjarmason via GitGitGadget
2022-12-05 23:32 ` Victoria Dye
2022-12-05 17:50 ` [PATCH v3 07/11] bundle-uri: serve bundle.* keys from config Derrick Stolee via GitGitGadget
2022-12-05 17:50 ` [PATCH v3 08/11] strbuf: introduce strbuf_strip_file_from_path() Derrick Stolee via GitGitGadget
2022-12-06 10:06 ` Ævar Arnfjörð Bjarmason
2022-12-06 11:37 ` Ævar Arnfjörð Bjarmason
2022-12-07 14:44 ` Derrick Stolee
2022-12-08 12:52 ` Ævar Arnfjörð Bjarmason
2022-12-05 17:50 ` [PATCH v3 09/11] bundle-uri: allow relative URLs in bundle lists Derrick Stolee via GitGitGadget
2022-12-05 23:33 ` Victoria Dye
2022-12-07 15:22 ` Derrick Stolee
2022-12-05 17:50 ` [PATCH v3 10/11] bundle-uri: download bundles from an advertised list Derrick Stolee via GitGitGadget
2022-12-07 12:57 ` Jeff King
2022-12-07 15:27 ` Derrick Stolee
2022-12-07 15:54 ` Derrick Stolee
2022-12-08 6:40 ` Jeff King
2022-12-08 6:36 ` Jeff King
2022-12-08 14:58 ` Derrick Stolee
2022-12-05 17:50 ` [PATCH v3 11/11] clone: unbundle the advertised bundles Derrick Stolee via GitGitGadget
2022-12-05 23:42 ` [PATCH v3 00/11] Bundle URIs IV: advertise over protocol v2 Victoria Dye
2022-12-22 15:14 ` [PATCH v4 " Derrick Stolee via GitGitGadget
2022-12-22 15:14 ` [PATCH v4 01/11] protocol v2: add server-side "bundle-uri" skeleton Ævar Arnfjörð Bjarmason via GitGitGadget
2022-12-22 15:14 ` [PATCH v4 02/11] t: create test harness for 'bundle-uri' command Ævar Arnfjörð Bjarmason via GitGitGadget
2022-12-22 15:14 ` [PATCH v4 03/11] clone: request the 'bundle-uri' command when available Ævar Arnfjörð Bjarmason via GitGitGadget
2022-12-22 15:14 ` [PATCH v4 04/11] bundle-uri client: add boolean transfer.bundleURI setting Ævar Arnfjörð Bjarmason via GitGitGadget
2022-12-22 15:14 ` [PATCH v4 05/11] transport: rename got_remote_heads Derrick Stolee via GitGitGadget
2022-12-22 15:14 ` [PATCH v4 06/11] bundle-uri client: add helper for testing server Ævar Arnfjörð Bjarmason via GitGitGadget
2022-12-30 16:31 ` Jeff King
2023-01-05 19:09 ` Derrick Stolee
2023-01-06 8:48 ` [PATCH] test-bundle-uri: drop unused variables Jeff King
2023-01-06 14:13 ` Derrick Stolee
2022-12-22 15:14 ` [PATCH v4 07/11] bundle-uri: serve bundle.* keys from config Derrick Stolee via GitGitGadget
2022-12-22 15:14 ` [PATCH v4 08/11] strbuf: introduce strbuf_strip_file_from_path() Derrick Stolee via GitGitGadget
2022-12-22 15:14 ` [PATCH v4 09/11] bundle-uri: allow relative URLs in bundle lists Derrick Stolee via GitGitGadget
2022-12-22 15:14 ` [PATCH v4 10/11] bundle-uri: download bundles from an advertised list Derrick Stolee via GitGitGadget
2022-12-22 15:14 ` [PATCH v4 11/11] clone: unbundle the advertised bundles Derrick Stolee via GitGitGadget
2022-12-25 11:35 ` [PATCH v4 00/11] Bundle URIs IV: advertise over protocol v2 Junio C Hamano
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=e4b6363a-58a4-a11e-d33e-c0bc9c755d72@github.com \
--to=derrickstolee@github.com \
--cc=avarab@gmail.com \
--cc=chooglen@google.com \
--cc=dyroneteng@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=gitster@pobox.com \
--cc=jonathantanmy@google.com \
--cc=me@ttaylorr.com \
--cc=mjcheetham@outlook.com \
--cc=newren@gmail.com \
--cc=steadmon@google.com \
--cc=vdye@github.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.