[PATCH 25/32] merge: prepare commit properly in narrow mode
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
builtin/merge.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/builtin/merge.c b/builtin/merge.c
index c70d39d..d05c528 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -57,6 +57,7 @@ static size_t xopts_nr, xopts_alloc;
static const char *branch;
static int verbosity;
static int allow_rerere_auto;
+static unsigned char narrow_base[20];
static struct strategy all_strategy[] = {
{ "recursive", DEFAULT_TWOHEAD | NO_TRIVIAL },
@@ -780,7 +781,8 @@ static int merge_trivial(void)
parent->next = xmalloc(sizeof(*parent->next));
parent->next->item = remoteheads->item;
parent->next->next = NULL;
- commit_tree(merge_msg.buf, result_tree, parent, result_commit, NULL);
+ commit_narrow_tree(merge_msg.buf, result_tree, narrow_base,
+ parent, result_commit, NULL);
finish(result_commit, "In-index merge");
drop_save();
return 0;
@@ -809,7 +811,8 @@ static int finish_automerge(struct commit_list *common,
}
free_commit_list(remoteheads);
strbuf_addch(&merge_msg, '\n');
- commit_tree(merge_msg.buf, result_tree, parents, result_commit, NULL);
+ commit_narrow_tree(merge_msg.buf, result_tree, narrow_base,
+ parents, result_commit, NULL);
strbuf_addf(&buf, "Merge made by %s.", wt_strategy);
finish(result_commit, buf.buf);
strbuf_release(&buf);
@@ -1064,6 +1067,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
}
if (item)
die("Different narrow base, couldn't do merge (yet)");
+ hashcpy(narrow_base, lookup_commit(head)->tree->object.sha1);
}
if (!remoteheads->next)
--
1.7.1.rc1.69.g24c2f7