{
enum object_type type;
unsigned long size;
- void *buf = read_sha1_file(note->hash, &type, &size);
+ void *buf = read_object_file(note, &type, &size);
if (!buf)
die("cannot read note %s for object %s",
printf("No merge base found; doing history-less merge\n");
} else if (!bases->next) {
base_oid = &bases->item->object.oid;
- base_tree_oid = &bases->item->tree->object.oid;
+ base_tree_oid = get_commit_tree_oid(bases->item);
if (o->verbosity >= 4)
printf("One merge base found (%.7s)\n",
oid_to_hex(base_oid));
} else {
/* TODO: How to handle multiple merge-bases? */
base_oid = &bases->item->object.oid;
- base_tree_oid = &bases->item->tree->object.oid;
+ base_tree_oid = get_commit_tree_oid(bases->item);
if (o->verbosity >= 3)
printf("Multiple merge bases found. Using the first "
"(%.7s)\n", oid_to_hex(base_oid));
goto found_result;
}
- result = merge_from_diffs(o, base_tree_oid, &local->tree->object.oid,
- &remote->tree->object.oid, local_tree);
+ result = merge_from_diffs(o, base_tree_oid,
+ get_commit_tree_oid(local),
+ get_commit_tree_oid(remote), local_tree);
if (result != 0) { /* non-trivial merge (with or without conflicts) */
/* Commit (partial) result */
struct commit_list *parents = NULL;
commit_list_insert(remote, &parents); /* LIFO order */
commit_list_insert(local, &parents);
- create_notes_commit(local_tree, parents,
- o->commit_msg.buf, o->commit_msg.len,
- result_oid->hash);
+ create_notes_commit(local_tree, parents, o->commit_msg.buf,
+ o->commit_msg.len, result_oid);
}
found_result:
strbuf_setlen(&path, baselen);
}
- create_notes_commit(partial_tree, partial_commit->parents,
- msg, strlen(msg), result_oid->hash);
+ create_notes_commit(partial_tree, partial_commit->parents, msg,
+ strlen(msg), result_oid);
unuse_commit_buffer(partial_commit, buffer);
if (o->verbosity >= 4)
printf("Finalized notes merge commit: %s\n",