From: "Jakub Narębski" <jnareb@gmail.com>
To: Abhishek Kumar <abhishekkumar8222@gmail.com>
Cc: git@vger.kernel.org, Derrick Stolee <stolee@gmail.com>
Subject: Re: [GSOC Patch v2 3/4] commit-graph: use generation directly when writing commit-graph
Date: Mon, 08 Jun 2020 18:31:49 +0200 [thread overview]
Message-ID: <85zh9dsemi.fsf@gmail.com> (raw)
In-Reply-To: <20200607193237.699335-4-abhishekkumar8222@gmail.com> (Abhishek Kumar's message of "Mon, 8 Jun 2020 01:02:36 +0530")
Abhishek Kumar <abhishekkumar8222@gmail.com> writes:
> commit_graph_generation() returns GENERATION_NUMBER_INFINITY if the
> graph position for commit is COMMIT_NOT_FROM_GRAPH.
>
> While this is true when reading from a commit graph, no graph positions
> are associated with a commit when writing a commit graph. Therefore, the
> helper incorrectly returns GENERATION_NUMBER_INFINITY despite having a
> finite generation number.
>
> Let's fix this by using generation number directly when writing a commit
> graph.
I think that to avoid having non-working patch (which can cause problems
when bisecting), it would be a better idea to switch the order of
patches 2 and 3. This way we won't have incorrect behaviour.
>
> Signed-off-by: Abhishek Kumar <abhishekkumar8222@gmail.com>
> ---
> commit-graph.c | 13 ++++++++-----
> 1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/commit-graph.c b/commit-graph.c
> index f7cca4def4..0dc79e7c90 100644
> --- a/commit-graph.c
> +++ b/commit-graph.c
> @@ -1070,7 +1070,7 @@ static void write_graph_chunk_data(struct hashfile *f, int hash_len,
> else
> packedDate[0] = 0;
>
> - packedDate[0] |= htonl(commit_graph_generation((*list)) << 2);
> + packedDate[0] |= htonl(commit_graph_data_at(*list)->generation << 2);
>
All right.
> packedDate[1] = htonl((*list)->date);
> hashwrite(f, packedDate, 8);
> @@ -1301,9 +1301,11 @@ static void compute_generation_numbers(struct write_commit_graph_context *ctx)
> _("Computing commit graph generation numbers"),
> ctx->commits.nr);
> for (i = 0; i < ctx->commits.nr; i++) {
> + uint32_t generation = commit_graph_data_at(ctx->commits.list[i])->generation;
> +
> display_progress(ctx->progress, i + 1);
> - if (commit_graph_generation(ctx->commits.list[i]) != GENERATION_NUMBER_INFINITY &&
> - commit_graph_generation(ctx->commits.list[i]) != GENERATION_NUMBER_ZERO)
> + if (generation != GENERATION_NUMBER_INFINITY &&
> + generation != GENERATION_NUMBER_ZERO)
> continue;
>
All right; this also introduces local variable to avoid accessing the
slab twice^W four times...
> commit_list_insert(ctx->commits.list[i], &list);
> @@ -1314,8 +1316,9 @@ static void compute_generation_numbers(struct write_commit_graph_context *ctx)
> uint32_t max_generation = 0;
>
> for (parent = current->parents; parent; parent = parent->next) {
> - if (commit_graph_generation(parent->item) == GENERATION_NUMBER_INFINITY ||
> - commit_graph_generation(parent->item) == GENERATION_NUMBER_ZERO) {
> +
> + if (generation == GENERATION_NUMBER_INFINITY ||
> + generation == GENERATION_NUMBER_ZERO) {
> all_parents_computed = 0;
> commit_list_insert(parent->item, &list);
> break;
... which is then used here.
Best,
--
Jakub Narębski
next prev parent reply other threads:[~2020-06-08 16:31 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-04 7:27 [GSoC Patch 0/3] Move generation, graph_pos to a slab Abhishek Kumar
2020-06-04 7:27 ` [GSoC Patch 1/3] commit: introduce helpers for generation slab Abhishek Kumar
2020-06-04 14:36 ` Derrick Stolee
2020-06-04 17:35 ` Junio C Hamano
2020-06-05 23:23 ` Jakub Narębski
2020-06-04 7:27 ` [GSoC Patch 2/3] commit: convert commit->generation to a slab Abhishek Kumar
2020-06-04 14:27 ` Derrick Stolee
2020-06-04 17:49 ` Junio C Hamano
2020-06-06 22:03 ` Jakub Narębski
2020-06-04 7:27 ` [GSoC Patch 3/3] commit: convert commit->graph_pos " Abhishek Kumar
2020-06-07 12:12 ` Jakub Narębski
2020-06-04 14:22 ` [GSoC Patch 0/3] Move generation, graph_pos " Derrick Stolee
2020-06-04 17:55 ` Junio C Hamano
2020-06-07 19:53 ` SZEDER Gábor
2020-06-08 5:48 ` Abhishek Kumar
2020-06-08 8:36 ` SZEDER Gábor
2020-06-08 13:45 ` Derrick Stolee
2020-06-08 16:46 ` SZEDER Gábor
2020-06-08 15:21 ` Jakub Narębski
2020-06-05 19:00 ` Jakub Narębski
2020-06-07 19:32 ` [GSOC Patch v2 0/4] " Abhishek Kumar
2020-06-07 19:32 ` [GSOC Patch v2 1/4] commit-graph: introduce commit_graph_data_slab Abhishek Kumar
2020-06-15 16:27 ` Taylor Blau
2020-06-07 19:32 ` [GSOC Patch v2 2/4] commit: move members graph_pos, generation to a slab Abhishek Kumar
2020-06-08 8:26 ` SZEDER Gábor
2020-06-08 12:35 ` Derrick Stolee
2020-06-07 19:32 ` [GSOC Patch v2 3/4] commit-graph: use generation directly when writing commit-graph Abhishek Kumar
2020-06-08 16:31 ` Jakub Narębski [this message]
2020-06-15 16:31 ` Taylor Blau
2020-06-07 19:32 ` [GSOC Patch v2 4/4] commit-graph: minimize commit_graph_data_slab access Abhishek Kumar
2020-06-08 16:22 ` [GSOC Patch v2 0/4] Move generation, graph_pos to a slab Jakub Narębski
2020-06-15 16:24 ` Taylor Blau
2020-06-17 9:14 ` [GSOC Patch v4 " Abhishek Kumar
2020-06-17 9:14 ` [GSOC Patch v4 1/4] object: drop parsed_object_pool->commit_count Abhishek Kumar
2020-06-17 9:14 ` [GSOC Patch v4 2/4] commit-graph: introduce commit_graph_data_slab Abhishek Kumar
2020-06-17 9:14 ` [GSOC Patch v4 3/4] commit: move members graph_pos, generation to a slab Abhishek Kumar
2020-06-17 9:14 ` [GSOC Patch v4 4/4] commit-graph: minimize commit_graph_data_slab access Abhishek Kumar
2020-06-19 13:59 ` [GSOC Patch v4 0/4] Move generation, graph_pos to a slab Derrick Stolee
2020-06-19 17:44 ` 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=85zh9dsemi.fsf@gmail.com \
--to=jnareb@gmail.com \
--cc=abhishekkumar8222@gmail.com \
--cc=git@vger.kernel.org \
--cc=stolee@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;
as well as URLs for NNTP newsgroup(s).