merge-recur: if there is no common ancestor, fake empty one

This fixes the coolest merge ever.

[jc: with two "Oops that's not it" fixes from Johannes and Alex,
 and an obvious type mismatch fix.]

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Johannes Schindelin 2006-08-09 18:43:03 +02:00 коммит произвёл Junio C Hamano
Родитель c1964a006f
Коммит 934d9a2407
1 изменённых файлов: 12 добавлений и 0 удалений

Просмотреть файл

@ -1223,6 +1223,18 @@ int merge(struct commit *h1,
output_commit_title(iter->item);
merged_common_ancestors = pop_commit(&ca);
if (merged_common_ancestors == NULL) {
/* if there is no common ancestor, make an empty tree */
struct tree *tree = xcalloc(1, sizeof(struct tree));
unsigned char hdr[40];
int hdrlen;
tree->object.parsed = 1;
tree->object.type = OBJ_TREE;
write_sha1_file_prepare(NULL, 0, tree_type, tree->object.sha1,
hdr, &hdrlen);
merged_common_ancestors = make_virtual_commit(tree, "ancestor");
}
for (iter = ca; iter; iter = iter->next) {
output_indent = call_depth + 1;