merge-index: ensure full index

Before iterating over all cache entries, ensure that a sparse index is
expanded to a full one 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>
maint
Derrick Stolee 2021-04-01 01:49:50 +00:00 committed by Junio C Hamano
parent 42f44e84eb
commit 299e2c4561
1 changed files with 5 additions and 0 deletions

View File

@ -58,6 +58,8 @@ static void merge_one_path(const char *path)
static void merge_all(void)
{
int i;
/* TODO: audit for interaction with sparse-index. */
ensure_full_index(&the_index);
for (i = 0; i < active_nr; i++) {
const struct cache_entry *ce = active_cache[i];
if (!ce_stage(ce))
@ -80,6 +82,9 @@ int cmd_merge_index(int argc, const char **argv, const char *prefix)

read_cache();

/* TODO: audit for interaction with sparse-index. */
ensure_full_index(&the_index);

i = 1;
if (!strcmp(argv[i], "-o")) {
one_shot = 1;