summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builtin-read-tree.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/builtin-read-tree.c b/builtin-read-tree.c
index cc61c2d813..7164b49054 100644
--- a/builtin-read-tree.c
+++ b/builtin-read-tree.c
@@ -799,10 +799,8 @@ static int oneway_merge(struct cache_entry **src)
return error("Cannot do a oneway merge of %d trees",
merge_size);
- if (!a) {
- invalidate_ce_path(old);
+ if (!a)
return deleted_entry(old, old);
- }
if (old && same(old, a)) {
if (reset) {
struct stat st;
@@ -1034,7 +1032,7 @@ int cmd_read_tree(int argc, const char **argv, char **envp)
* valid cache-tree because the index must match exactly
* what came from the tree.
*/
- if (trees && trees->item && (!merge || (stage == 2))) {
+ if (trees && trees->item && !prefix && (!merge || (stage == 2))) {
cache_tree_free(&active_cache_tree);
prime_cache_tree();
}