From: Derrick Stolee <derrickstolee@github.com>
To: Junio C Hamano <gitster@pobox.com>,
Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org, me@ttaylorr.com, vdye@github.com,
avarab@gmail.com, steadmon@google.com, chooglen@google.com
Subject: Re: [PATCH 4/8] bundle-uri: download in creationToken order
Date: Mon, 9 Jan 2023 09:58:54 -0500 [thread overview]
Message-ID: <9ac62cc6-db13-9a39-b3fd-a76311bdf92d@github.com> (raw)
In-Reply-To: <xmqqtu10wfwt.fsf@gitster.g>
On 1/8/2023 10:22 PM, Junio C Hamano wrote:
> "Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com> writes:
>
>> +struct sorted_bundle_list {
>> + struct remote_bundle_info **items;
>> + size_t alloc;
>> + size_t nr;
>> +};
>> +
>> +static int insert_bundle(struct remote_bundle_info *bundle, void *data)
>> +{
>> + struct sorted_bundle_list *list = data;
>> + list->items[list->nr++] = bundle;
>> + return 0;
>> +}
>
> Especially given that the type of the list claims it to be "sorted",
> insert_bundle() is a misleading name for a helper that merely
> appends to it to make the list (tentatively) unsorted.
>
> I am not opposed to "append all to make an unsorted list, then sort
> the list at the end" strategy.
...
> If I were doing this patch, I would call the type of the list of
> bundles "struct bundle_list" (without "sorted_" in its name), and
> name the variable of that type used here "sorted". That would make
> it more clear that this particular bundle list starts its life as
> unsorted (with "append_bundle" function adding more elements) and
> then gets sorted in the end, from the above several lines.
Since "struct bundle_list" is taken, how about "bundles_for_sorting"
since that's the purpose of this struct (to be passed as data to
the for_all_bundles_in_list() and then to QSORT()).
Renaming insert_bundle() to append_bundle() is clearly better.
>> +static int compare_creation_token(const void *va, const void *vb)
>> +{
>> + const struct remote_bundle_info * const *a = va;
>> + const struct remote_bundle_info * const *b = vb;
>> +
>> + if ((*a)->creationToken > (*b)->creationToken)
>> + return -1;
>> + if ((*a)->creationToken < (*b)->creationToken)
>> + return 1;
>> + return 0;
>> +}
>
> Usually compare(a,b) returns the sign of (a-b), but the returned
> value from the above is the opposite. This is because we want the
> list sorted from newer to older? It may help developers to name
> such a (reverse) "compare" function differently.
Would renaming this to "compare_creation_token_decreasing" be clear
enough? (Plus a doc comment.)
Thanks,
-Stolee
next prev parent reply other threads:[~2023-01-09 14:59 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-06 20:36 [PATCH 0/8] Bundle URIs V: creationToken heuristic for incremental fetches Derrick Stolee via GitGitGadget
2023-01-06 20:36 ` [PATCH 1/8] t5558: add tests for creationToken heuristic Derrick Stolee via GitGitGadget
2023-01-17 18:17 ` Victoria Dye
2023-01-17 21:00 ` Derrick Stolee
2023-01-06 20:36 ` [PATCH 2/8] bundle-uri: parse bundle.heuristic=creationToken Derrick Stolee via GitGitGadget
2023-01-09 2:38 ` Junio C Hamano
2023-01-09 14:20 ` Derrick Stolee
2023-01-17 19:13 ` Victoria Dye
2023-01-06 20:36 ` [PATCH 3/8] bundle-uri: parse bundle.<id>.creationToken values Derrick Stolee via GitGitGadget
2023-01-09 3:08 ` Junio C Hamano
2023-01-09 14:41 ` Derrick Stolee
2023-01-17 19:24 ` Victoria Dye
2023-01-06 20:36 ` [PATCH 4/8] bundle-uri: download in creationToken order Derrick Stolee via GitGitGadget
2023-01-09 3:22 ` Junio C Hamano
2023-01-09 14:58 ` Derrick Stolee [this message]
2023-01-19 18:32 ` Victoria Dye
2023-01-20 14:56 ` Derrick Stolee
2023-01-06 20:36 ` [PATCH 5/8] clone: set fetch.bundleURI if appropriate Derrick Stolee via GitGitGadget
2023-01-19 19:42 ` Victoria Dye
2023-01-20 15:42 ` Derrick Stolee
2023-01-06 20:36 ` [PATCH 6/8] bundle-uri: drop bundle.flag from design doc Derrick Stolee via GitGitGadget
2023-01-19 19:44 ` Victoria Dye
2023-01-06 20:36 ` [PATCH 7/8] fetch: fetch from an external bundle URI Derrick Stolee via GitGitGadget
2023-01-19 20:34 ` Victoria Dye
2023-01-20 15:47 ` Derrick Stolee
2023-01-06 20:36 ` [PATCH 8/8] bundle-uri: store fetch.bundleCreationToken Derrick Stolee via GitGitGadget
2023-01-19 22:24 ` Victoria Dye
2023-01-20 15:53 ` Derrick Stolee
2023-01-23 15:21 ` [PATCH v2 00/10] Bundle URIs V: creationToken heuristic for incremental fetches Derrick Stolee via GitGitGadget
2023-01-23 15:21 ` [PATCH v2 01/10] bundle: optionally skip reachability walk Derrick Stolee via GitGitGadget
2023-01-23 18:03 ` Junio C Hamano
2023-01-23 18:24 ` Derrick Stolee
2023-01-23 20:13 ` Junio C Hamano
2023-01-23 22:30 ` Junio C Hamano
2023-01-24 12:27 ` Derrick Stolee
2023-01-24 14:14 ` [PATCH v2.5 01/11] bundle: test unbundling with incomplete history Derrick Stolee
2023-01-24 17:16 ` Junio C Hamano
2023-01-24 14:16 ` [PATCH v2.5 02/11] bundle: verify using connected() Derrick Stolee
2023-01-24 17:33 ` Junio C Hamano
2023-01-24 18:46 ` Derrick Stolee
2023-01-24 20:41 ` Junio C Hamano
2023-01-24 15:22 ` [PATCH v2 01/10] bundle: optionally skip reachability walk Junio C Hamano
2023-01-23 21:08 ` Junio C Hamano
2023-01-23 15:21 ` [PATCH v2 02/10] t5558: add tests for creationToken heuristic Derrick Stolee via GitGitGadget
2023-01-27 19:15 ` Victoria Dye
2023-01-23 15:21 ` [PATCH v2 03/10] bundle-uri: parse bundle.heuristic=creationToken Derrick Stolee via GitGitGadget
2023-01-23 15:21 ` [PATCH v2 04/10] bundle-uri: parse bundle.<id>.creationToken values Derrick Stolee via GitGitGadget
2023-01-23 15:21 ` [PATCH v2 05/10] bundle-uri: download in creationToken order Derrick Stolee via GitGitGadget
2023-01-27 19:17 ` Victoria Dye
2023-01-27 19:32 ` Junio C Hamano
2023-01-30 18:43 ` Derrick Stolee
2023-01-30 19:02 ` Junio C Hamano
2023-01-30 19:12 ` Derrick Stolee
2023-01-23 15:21 ` [PATCH v2 06/10] clone: set fetch.bundleURI if appropriate Derrick Stolee via GitGitGadget
2023-01-23 15:21 ` [PATCH v2 07/10] bundle-uri: drop bundle.flag from design doc Derrick Stolee via GitGitGadget
2023-01-23 15:21 ` [PATCH v2 08/10] fetch: fetch from an external bundle URI Derrick Stolee via GitGitGadget
2023-01-27 19:18 ` Victoria Dye
2023-01-23 15:21 ` [PATCH v2 09/10] bundle-uri: store fetch.bundleCreationToken Derrick Stolee via GitGitGadget
2023-01-23 15:21 ` [PATCH v2 10/10] bundle-uri: test missing bundles with heuristic Derrick Stolee via GitGitGadget
2023-01-27 19:21 ` Victoria Dye
2023-01-30 18:47 ` Derrick Stolee
2023-01-27 19:28 ` [PATCH v2 00/10] Bundle URIs V: creationToken heuristic for incremental fetches Victoria Dye
2023-01-31 13:29 ` [PATCH v3 00/11] " Derrick Stolee via GitGitGadget
2023-01-31 13:29 ` [PATCH v3 01/11] bundle: test unbundling with incomplete history Derrick Stolee via GitGitGadget
2023-01-31 13:29 ` [PATCH v3 02/11] bundle: verify using check_connected() Derrick Stolee via GitGitGadget
2023-01-31 17:35 ` Junio C Hamano
2023-01-31 19:31 ` Derrick Stolee
2023-01-31 19:36 ` Junio C Hamano
2023-01-31 13:29 ` [PATCH v3 03/11] t5558: add tests for creationToken heuristic Derrick Stolee via GitGitGadget
2023-01-31 13:29 ` [PATCH v3 04/11] bundle-uri: parse bundle.heuristic=creationToken Derrick Stolee via GitGitGadget
2023-01-31 13:29 ` [PATCH v3 05/11] bundle-uri: parse bundle.<id>.creationToken values Derrick Stolee via GitGitGadget
2023-01-31 21:22 ` Junio C Hamano
2023-01-31 13:29 ` [PATCH v3 06/11] bundle-uri: download in creationToken order Derrick Stolee via GitGitGadget
2023-01-31 13:29 ` [PATCH v3 07/11] clone: set fetch.bundleURI if appropriate Derrick Stolee via GitGitGadget
2023-01-31 13:29 ` [PATCH v3 08/11] bundle-uri: drop bundle.flag from design doc Derrick Stolee via GitGitGadget
2023-01-31 13:29 ` [PATCH v3 09/11] fetch: fetch from an external bundle URI Derrick Stolee via GitGitGadget
2023-01-31 13:29 ` [PATCH v3 10/11] bundle-uri: store fetch.bundleCreationToken Derrick Stolee via GitGitGadget
2023-01-31 13:29 ` [PATCH v3 11/11] bundle-uri: test missing bundles with heuristic Derrick Stolee via GitGitGadget
2023-01-31 22:01 ` [PATCH v3 00/11] Bundle URIs V: creationToken heuristic for incremental fetches 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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9ac62cc6-db13-9a39-b3fd-a76311bdf92d@github.com \
--to=derrickstolee@github.com \
--cc=avarab@gmail.com \
--cc=chooglen@google.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=gitster@pobox.com \
--cc=me@ttaylorr.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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).