diff options
author | Derrick Stolee <dstolee@microsoft.com> | 2021-04-01 03:49:59 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-04-14 22:47:45 +0200 |
commit | dc26b23ebc30adcb4aa54a5eccf2e47793984fa2 (patch) | |
tree | 9a863a0ce957a5bf7d4ff0a8d636f0377091835f /resolve-undo.c | |
parent | read-cache: ensure full index (diff) | |
download | git-dc26b23ebc30adcb4aa54a5eccf2e47793984fa2.tar.xz git-dc26b23ebc30adcb4aa54a5eccf2e47793984fa2.zip |
resolve-undo: ensure full index
Before iterating over all cache entries, ensure that a sparse index is
expanded to a full index to avoid unexpected behavior.
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'resolve-undo.c')
-rw-r--r-- | resolve-undo.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/resolve-undo.c b/resolve-undo.c index 236320f179..ee36ca58b1 100644 --- a/resolve-undo.c +++ b/resolve-undo.c @@ -172,6 +172,8 @@ void unmerge_marked_index(struct index_state *istate) if (!istate->resolve_undo) return; + /* TODO: audit for interaction with sparse-index. */ + ensure_full_index(istate); for (i = 0; i < istate->cache_nr; i++) { const struct cache_entry *ce = istate->cache[i]; if (ce->ce_flags & CE_MATCHED) @@ -186,6 +188,8 @@ void unmerge_index(struct index_state *istate, const struct pathspec *pathspec) if (!istate->resolve_undo) return; + /* TODO: audit for interaction with sparse-index. */ + ensure_full_index(istate); for (i = 0; i < istate->cache_nr; i++) { const struct cache_entry *ce = istate->cache[i]; if (!ce_path_match(istate, ce, pathspec, NULL)) |