Skip to content

Commit ae103c3

Browse files
dschogitster
authored andcommitted
sparse-index: sparse index is disallowed when split index is active
In 6e77352 (sparse-index: convert from full to sparse, 2021-03-30), we introduced initial support for a sparse index, and were careful to avoid converting to a sparse index in the presence of a split index. However, when we _just_ read a freshly-initialized index, it might not contain a split index even if _writing_ it will add one by virtue of being asked for via the `GIT_TEST_SPLIT_INDEX` variable. We did not notice any problems with checking _only_ for `split_index` (and not `GIT_TEST_SPLIT_INDEX`) right until both `vd/sparse-sparsity-fix-on-read` _and_ `vd/sparse-reset` were merged. Those two topics' interplay triggers a bug in conjunction with running t1091.15 when `GIT_TEST_SPLIT_INDEX=true` in the following way: `vd/sparse-sparsity-fix-on-read` ensures that the index is made sparse right after reading, and `vd/sparse-reset` ensures that the index is made non-sparse again unless running in the `--soft` mode. Since the split index feature is incompatible with the sparse index feature, we see a symptom like this: fatal: position for replacement 4 exceeds base index size 4 Let's fix this by avoiding the conversion to a sparse index when `GIT_TEST_SPLIT_INDEX=true`. Signed-off-by: Johannes Schindelin <[email protected]> Reviewed-by: Elijah Newren <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 297ca89 commit ae103c3

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

sparse-index.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ static int is_sparse_index_allowed(struct index_state *istate, int flags)
136136
/*
137137
* The sparse index is not (yet) integrated with a split index.
138138
*/
139-
if (istate->split_index)
139+
if (istate->split_index || git_env_bool("GIT_TEST_SPLIT_INDEX", 0))
140140
return 0;
141141
/*
142142
* The GIT_TEST_SPARSE_INDEX environment variable triggers the

0 commit comments

Comments
 (0)