Merge branch 'jk/commit-graph-slab-clear-fix' into maint-2.43
Clearing in-core repository (happens during e.g., "git fetch --recurse-submodules" with commit graph enabled) made in-core commit object in an inconsistent state by discarding the necessary data from commit-graph too early, which has been corrected. * jk/commit-graph-slab-clear-fix: commit-graph: retain commit slab when closing NULL commit_graph
This commit is contained in:
@ -831,6 +831,9 @@ struct bloom_filter_settings *get_bloom_filter_settings(struct repository *r)
|
|||||||
|
|
||||||
void close_commit_graph(struct raw_object_store *o)
|
void close_commit_graph(struct raw_object_store *o)
|
||||||
{
|
{
|
||||||
|
if (!o->commit_graph)
|
||||||
|
return;
|
||||||
|
|
||||||
clear_commit_graph_data_slab(&commit_graph_data_slab);
|
clear_commit_graph_data_slab(&commit_graph_data_slab);
|
||||||
free_commit_graph(o->commit_graph);
|
free_commit_graph(o->commit_graph);
|
||||||
o->commit_graph = NULL;
|
o->commit_graph = NULL;
|
||||||
|
@ -802,7 +802,8 @@ test_expect_success 'fetch.writeCommitGraph with submodules' '
|
|||||||
cd super-clone &&
|
cd super-clone &&
|
||||||
rm -rf .git/objects/info &&
|
rm -rf .git/objects/info &&
|
||||||
git -c fetch.writeCommitGraph=true fetch origin &&
|
git -c fetch.writeCommitGraph=true fetch origin &&
|
||||||
test_path_is_file .git/objects/info/commit-graphs/commit-graph-chain
|
test_path_is_file .git/objects/info/commit-graphs/commit-graph-chain &&
|
||||||
|
git -c fetch.writeCommitGraph=true fetch --recurse-submodules origin
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user