From: Derrick Stolee Date: Tue, 29 Jun 2021 02:13:05 +0000 (+0000) Subject: sparse-index: recompute cache-tree X-Git-Tag: v2.33.0-rc1~11^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f934f1b47fb56d18b2b81d9288590e03e9a0ed23;p=thirdparty%2Fgit.git sparse-index: recompute cache-tree When some commands run with command_requires_full_index=1, then the index can get in a state where the in-memory cache tree is actually equal to the sparse index's cache tree instead of the full one. This results in incorrect entry_count values. By clearing the cache tree before converting to sparse, we avoid this issue. Signed-off-by: Derrick Stolee Signed-off-by: Junio C Hamano --- diff --git a/sparse-index.c b/sparse-index.c index 53c8f711cc..c6b4feec41 100644 --- a/sparse-index.c +++ b/sparse-index.c @@ -170,6 +170,8 @@ int convert_to_sparse(struct index_state *istate) if (index_has_unmerged_entries(istate)) return 0; + /* Clear and recompute the cache-tree */ + cache_tree_free(&istate->cache_tree); if (cache_tree_update(istate, 0)) { warning(_("unable to update cache-tree, staying full")); return -1;