summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Johannes Schindelin <johannes.schindelin@gmx.de>2022-01-19 17:29:39 +0000
committerLibravatar Junio C Hamano <gitster@pobox.com>2022-01-23 17:06:23 -0800
commit451b66c533b9ede47951d16c0127ab33372125ca (patch)
tree94090ac7a8afa3437f88283a978127ca592746e6
parentt1091: disable split index (diff)
downloadtgif-451b66c533b9ede47951d16c0127ab33372125ca.tar.xz
split-index: it really is incompatible with the sparse index
... at least for now. So let's error out if we are even trying to initialize the split index when the index is sparse, or when trying to write the split index extension for a sparse index. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Reviewed-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--read-cache.c3
-rw-r--r--split-index.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/read-cache.c b/read-cache.c
index cbe73f14e5..a932e01fc7 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -3009,6 +3009,9 @@ static int do_write_index(struct index_state *istate, struct tempfile *tempfile,
!is_null_oid(&istate->split_index->base_oid)) {
struct strbuf sb = STRBUF_INIT;
+ if (istate->sparse_index)
+ die(_("cannot write split index for a sparse index"));
+
err = write_link_extension(&sb, istate) < 0 ||
write_index_ext_header(f, eoie_c, CACHE_EXT_LINK,
sb.len) < 0;
diff --git a/split-index.c b/split-index.c
index 8e52e891c3..9d0ccc30d0 100644
--- a/split-index.c
+++ b/split-index.c
@@ -5,6 +5,9 @@
struct split_index *init_split_index(struct index_state *istate)
{
if (!istate->split_index) {
+ if (istate->sparse_index)
+ die(_("cannot use split index with a sparse index"));
+
CALLOC_ARRAY(istate->split_index, 1);
istate->split_index->refcount = 1;
}