git-read-tree: make one-way merge also honor the "update" flag
authorLinus Torvalds <torvalds@ppc970.osdl.org>
Tue, 7 Jun 2005 22:17:33 +0000 (15:17 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Tue, 7 Jun 2005 22:17:33 +0000 (15:17 -0700)
It didn't set CE_UPDATE before, so "-u" was a no-op.

read-tree.c

index 8eb2432127e255347b2e6116d3f7ff57b4e06ba5..cf6d28e2c9ee689a5ea49d715bc56773b266efa8 100644 (file)
@@ -218,11 +218,11 @@ static int oneway_merge(struct cache_entry **src, struct cache_entry **dst)
 
        if (!a)
                return 0;
-       if (old && same(old, a))
-               *a = *old;
-       a->ce_flags &= ~htons(CE_STAGEMASK);
-       *dst++ = a;
-       return 1;
+       if (old && same(old, a)) {
+               *dst++ = old;
+               return 1;
+       }
+       return merged_entry(a, NULL, dst);
 }
 
 static void check_updates(struct cache_entry **src, int nr)