Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
merge-recur: if there is no common ancestor, fake empty one
author
Johannes Schindelin
<Johannes.Schindelin@gmx.de>
Wed, 9 Aug 2006 16:43:03 +0000
(18:43 +0200)
committer
Junio C Hamano
<junkio@cox.net>
Wed, 9 Aug 2006 21:54:00 +0000
(14:54 -0700)
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>
merge-recursive.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
c1964a0
)
diff --git
a/merge-recursive.c
b/merge-recursive.c
index 7a93dd9208afda607dfc69e1e749c087251be648..d4de1adfe271c57ff40f60b4064de9ae35980599 100644
(file)
--- a/
merge-recursive.c
+++ b/
merge-recursive.c
@@
-1223,6
+1223,18
@@
int merge(struct commit *h1,
output_commit_title(iter->item);
merged_common_ancestors = pop_commit(&ca);
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;
for (iter = ca; iter; iter = iter->next) {
output_indent = call_depth + 1;