X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=merge-tree.c;h=02fc10f7e622ba1c53065e7cf4563ff10af0c41f;hb=f4022fa33f1b0a63029d1bc3748f01f720151218;hp=a3511b76ca5f619024ac5fedd17e66ef75f717ab;hpb=40d934df72eaf244c826d5c26da0896ce7185cb6;p=git.git diff --git a/merge-tree.c b/merge-tree.c index a3511b76c..02fc10f7e 100644 --- a/merge-tree.c +++ b/merge-tree.c @@ -287,31 +287,32 @@ static void unresolved(const struct traverse_info *info, struct name_entry n[3]) * The successful merge rules are the same as for the three-way merge * in git-read-tree. */ -static void threeway_callback(int n, unsigned long mask, struct name_entry *entry, struct traverse_info *info) +static int threeway_callback(int n, unsigned long mask, unsigned long dirmask, struct name_entry *entry, struct traverse_info *info) { /* Same in both? */ if (same_entry(entry+1, entry+2)) { if (entry[0].sha1) { resolve(info, NULL, entry+1); - return; + return mask; } } if (same_entry(entry+0, entry+1)) { if (entry[2].sha1 && !S_ISDIR(entry[2].mode)) { resolve(info, entry+1, entry+2); - return; + return mask; } } if (same_entry(entry+0, entry+2)) { if (entry[1].sha1 && !S_ISDIR(entry[1].mode)) { resolve(info, NULL, entry+1); - return; + return mask; } } unresolved(info, entry); + return mask; } static void merge_trees(struct tree_desc t[3], const char *base)