From 8ea36f63d8e63350325705afef885ae215e64217 Mon Sep 17 00:00:00 2001 From: Kristofer Karlsson Date: Thu, 9 Jul 2026 15:03:01 +0000 Subject: [PATCH] commit-graph: propagate topo_levels slab to all chain layers The topo_levels slab is only propagated to the topmost graph layer instead of all layers in the chain. Commits from lower layers appear to have no generation numbers, so the DFS re-walks the entire ancestry. Fix by making topo_levels visible to all layers, not just the first one. Signed-off-by: Kristofer Karlsson Signed-off-by: Junio C Hamano --- commit-graph.c | 2 +- t/t5324-split-commit-graph.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/commit-graph.c b/commit-graph.c index 702ba9731b..a0bca248ac 100644 --- a/commit-graph.c +++ b/commit-graph.c @@ -2610,7 +2610,7 @@ int write_commit_graph(struct odb_source *source, g = prepare_commit_graph(ctx.r); for (struct commit_graph *chain = g; chain; chain = chain->base_graph) - g->topo_levels = &topo_levels; + chain->topo_levels = &topo_levels; if (flags & COMMIT_GRAPH_WRITE_BLOOM_FILTERS) ctx.changed_paths = 1; diff --git a/t/t5324-split-commit-graph.sh b/t/t5324-split-commit-graph.sh index b41331e3dd..9e5ab7dbd0 100755 --- a/t/t5324-split-commit-graph.sh +++ b/t/t5324-split-commit-graph.sh @@ -718,7 +718,7 @@ test_expect_success 'write generation data chunk when commit-graph chain is repl ) ' -test_expect_failure 'incremental write reads topo levels from all layers' ' +test_expect_success 'incremental write reads topo levels from all layers' ' git init topo-from-lower && ( cd topo-from-lower &&