aboutsummaryrefslogtreecommitdiff
path: root/read-cache.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2017-06-24 12:02:39 -0700
committerJunio C Hamano <gitster@pobox.com>2017-06-24 12:02:39 -0700
commit64719b115d61582fa501690ee6caff4c478b4b1a (patch)
tree56e1208d62bdb762b9282d5a109f26d312f12b1c /read-cache.c
parentde950c577317f499df44c383ecbb7967f4905db9 (diff)
downloadgit-64719b115d61582fa501690ee6caff4c478b4b1a.tar.gz
git-64719b115d61582fa501690ee6caff4c478b4b1a.tar.xz
Revert "split-index: add and use unshare_split_index()"
This reverts commit f9d7abec2ad2f9eb3d8873169cc28c34273df082; see public-inbox.org/git/CAP8UFD0bOfzY-_hBDKddOcJdPUpP2KEVaX_SrCgvAMYAHtseiQ@mail.gmail.com
Diffstat (limited to 'read-cache.c')
-rw-r--r--read-cache.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/read-cache.c b/read-cache.c
index 8da84ae2d..0d0081a11 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -1877,9 +1877,15 @@ int discard_index(struct index_state *istate)
{
int i;
- unshare_split_index(istate, 1);
- for (i = 0; i < istate->cache_nr; i++)
+ for (i = 0; i < istate->cache_nr; i++) {
+ if (istate->cache[i]->index &&
+ istate->split_index &&
+ istate->split_index->base &&
+ istate->cache[i]->index <= istate->split_index->base->cache_nr &&
+ istate->cache[i] == istate->split_index->base->cache[istate->cache[i]->index - 1])
+ continue;
free(istate->cache[i]);
+ }
resolve_undo_clear_index(istate);
istate->cache_nr = 0;
istate->cache_changed = 0;