X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=unpack-trees.c;h=e59d144d28164f2451784513105f6269f0e9167c;hb=1689c5de8730ea334535337a341db3c7a21ad002;hp=cba0aca062f201c5cd5f8799f2190d4a6f06e7c7;hpb=06f60e8edf1eb3a91e1af6f255bf46154168dd86;p=git.git diff --git a/unpack-trees.c b/unpack-trees.c index cba0aca06..e59d144d2 100644 --- a/unpack-trees.c +++ b/unpack-trees.c @@ -376,6 +376,7 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options state.refresh_cache = 1; memset(&o->result, 0, sizeof(o->result)); + o->result.initialized = 1; if (o->src_index) o->result.timestamp = o->src_index->timestamp; o->merge_size = len; @@ -940,8 +941,17 @@ int twoway_merge(struct cache_entry **src, struct unpack_trees_options *o) return -1; } } - else if (newtree) + else if (newtree) { + if (oldtree && !o->initial_checkout) { + /* + * deletion of the path was staged; + */ + if (same(oldtree, newtree)) + return 1; + return reject_merge(oldtree, o); + } return merged_entry(newtree, current, o); + } return deleted_entry(oldtree, current, o); }