diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-06-24 22:04:25 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-06-24 22:04:25 +0300 |
commit | 6ba4d62ba8fb00310df6e6cc0d4437871106c5ed (patch) | |
tree | 1ecc1ebb2de078b8b25f607cc0f2947b25cab462 /read-cache.c | |
parent | 5402b1352f5181247405fbff1887008a0cb3b04a (diff) | |
parent | 64719b115d61582fa501690ee6caff4c478b4b1a (diff) |
Merge branch 'nd/split-index-unshare'
* nd/split-index-unshare:
Revert "split-index: add and use unshare_split_index()"
Diffstat (limited to 'read-cache.c')
-rw-r--r-- | read-cache.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/read-cache.c b/read-cache.c index bc156a133e..f026920052 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; |