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>maint
parent
c1964a006f
commit
934d9a2407
|
@ -1223,6 +1223,18 @@ int merge(struct commit *h1,
|
||||||
output_commit_title(iter->item);
|
output_commit_title(iter->item);
|
||||||
|
|
||||||
merged_common_ancestors = pop_commit(&ca);
|
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) {
|
for (iter = ca; iter; iter = iter->next) {
|
||||||
output_indent = call_depth + 1;
|
output_indent = call_depth + 1;
|
||||||
|
|
Loading…
Reference in New Issue