static int do_recursive_merge(struct commit *base, struct commit *next,
const char *base_label, const char *next_label,
- unsigned char *head, struct strbuf *msgbuf,
+ struct object_id *head, struct strbuf *msgbuf,
struct replay_opts *opts)
{
struct merge_options o;
if (is_rebase_i(opts))
o.buffer_output = 2;
- head_tree = parse_tree_indirect(head);
+ head_tree = parse_tree_indirect(head->hash);
next_tree = next ? next->tree : empty_tree();
base_tree = base ? base->tree : empty_tree();
res = -1;
else if (!opts->strategy || !strcmp(opts->strategy, "recursive") || command == TODO_REVERT) {
res = do_recursive_merge(base, next, base_label, next_label,
- head.hash, &msgbuf, opts);
+ &head, &msgbuf, opts);
if (res < 0)
return res;
res |= write_message(msgbuf.buf, msgbuf.len,