read-tree --aggressive: remove deleted entry from the working tree.
authorJunio C Hamano <junkio@cox.net>
Thu, 2 Mar 2006 07:10:00 +0000 (23:10 -0800)
committerJunio C Hamano <junkio@cox.net>
Thu, 2 Mar 2006 07:20:01 +0000 (23:20 -0800)
When both heads deleted, or our side deleted while the other
side did not touch, we did not have to update the working tree.

However, we forgot to remove existing working tree file when we
did not touch and the other side did.

Signed-off-by: Junio C Hamano <junkio@cox.net>
read-tree.c

index bb50a800d79dbfb7836b6cba1c62935d9a78577e..da0fcf035e97ce0d362237c73993e6bf4c4de4ff 100644 (file)
@@ -560,9 +560,11 @@ static int threeway_merge(struct cache_entry **stages)
                 */
                if ((head_deleted && remote_deleted) ||
                    (head_deleted && remote && remote_match) ||
-                   (remote_deleted && head && head_match))
+                   (remote_deleted && head && head_match)) {
+                       if (index)
+                               return deleted_entry(index, index);
                        return 0;
-
+               }
                /*
                 * Added in both, identically.
                 */