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 <junkio@cox.net>
This commit is contained in:
Junio C Hamano 2006-05-17 03:16:27 -07:00
parent 6bd20358a9
commit d6970e42a1

View File

@ -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,11 +693,11 @@ 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);
if (!a)
return keep_entry(old);
else
return merged_entry(a, NULL);
}