Code

Allow one-way tree merge to remove old files
authorLinus Torvalds <torvalds@osdl.org>
Sun, 14 May 2006 17:43:50 +0000 (10:43 -0700)
committerJunio C Hamano <junkio@cox.net>
Sun, 14 May 2006 23:48:23 +0000 (16:48 -0700)
For some random reason (probably just because nobody noticed), the one-way
merge strategy didn't mark deleted files as deleted, so if you used

git-read-tree -m -u <newtree>

it would update the files that got changed in the index, but it would not
delete the files that got deleted.

This should fix it, and I can't imagine that anybody depends on the old
strange "update only existing files" behaviour.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
read-tree.c

index e926e4c880363469c5abf766127acc466fb5e438..11157f42426d7f1783420e1a5fa72379ee759e6a 100644 (file)
@@ -684,7 +684,7 @@ static int oneway_merge(struct cache_entry **src)
                             merge_size);
 
        if (!a)
-               return 0;
+               return deleted_entry(old, NULL);
        if (old && same(old, a)) {
                return keep_entry(old);
        }