diff --git a/builtin-read-tree.c b/builtin-read-tree.c
index 43cd56a3b5f969c5f8a44c674b95b53868e9d147..7bdc312e3861103fa83b20b939962a8bc8e6cc0a 100644 (file)
--- a/builtin-read-tree.c
+++ b/builtin-read-tree.c
for (i = 0; i < active_nr; i++) {
struct cache_entry *ce = active_cache[i];
if (ce_stage(ce)) {
+ remove_index_entry(ce);
if (last && !strcmp(ce->name, last->name))
continue;
cache_tree_invalidate_path(active_cache_tree, ce->name);
last = ce;
- ce->ce_mode = 0;
- ce->ce_flags &= ~htons(CE_STAGEMASK);
+ continue;
}
*dst++ = ce;
}
}
if (write_cache(newfd, active_cache, active_nr) ||
- close(newfd) || commit_locked_index(&lock_file))
+ commit_locked_index(&lock_file))
die("unable to write new index file");
return 0;
}