From: Junio C Hamano Date: Wed, 17 May 2006 10:16:27 +0000 (-0700) Subject: read-tree: reorganize bind_merge code. X-Git-Tag: v1.4.1-rc1~95^2 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=d6970e42a1763b549ccf93558de7f54a78819d7a;p=git.git read-tree: reorganize bind_merge code. This does not change the logic but moves the order of checks around so that merging of read-tree safety code would become easier. Signed-off-by: Junio C Hamano --- diff --git a/read-tree.c b/read-tree.c index 8b91affe8..fb1d6829d 100644 --- a/read-tree.c +++ b/read-tree.c @@ -683,7 +683,7 @@ static int twoway_merge(struct cache_entry **src) * Bind merge. * * Keep the index entries at stage0, collapse stage1 but make sure - * stage0 does not have anything in prefix. + * stage0 does not have anything there. */ static int bind_merge(struct cache_entry **src) { @@ -693,12 +693,12 @@ static int bind_merge(struct cache_entry **src) if (merge_size != 1) return error("Cannot do a bind merge of %d trees\n", merge_size); - if (!a) - return merged_entry(old, NULL); - if (old) + if (a && old) die("Entry '%s' overlaps. Cannot bind.", a->name); - - return merged_entry(a, NULL); + if (!a) + return keep_entry(old); + else + return merged_entry(a, NULL); } /*