diff options
Diffstat (limited to 'notes-merge.c')
-rw-r--r-- | notes-merge.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/notes-merge.c b/notes-merge.c index bd05d50b05..2fe724f1cf 100644 --- a/notes-merge.c +++ b/notes-merge.c @@ -18,23 +18,25 @@ struct notes_merge_pair { struct object_id obj, base, local, remote; }; -void init_notes_merge_options(struct notes_merge_options *o) +void init_notes_merge_options(struct repository *r, + struct notes_merge_options *o) { memset(o, 0, sizeof(struct notes_merge_options)); strbuf_init(&(o->commit_msg), 0); o->verbosity = NOTES_MERGE_VERBOSITY_DEFAULT; + o->repo = r; } static int path_to_oid(const char *path, struct object_id *oid) { - char hex_oid[GIT_SHA1_HEXSZ]; + char hex_oid[GIT_MAX_HEXSZ]; int i = 0; - while (*path && i < GIT_SHA1_HEXSZ) { + while (*path && i < the_hash_algo->hexsz) { if (*path != '/') hex_oid[i++] = *path; path++; } - if (*path || i != GIT_SHA1_HEXSZ) + if (*path || i != the_hash_algo->hexsz) return -1; return get_oid_hex(hex_oid, oid); } @@ -127,7 +129,7 @@ static struct notes_merge_pair *diff_tree_remote(struct notes_merge_options *o, trace_printf("\tdiff_tree_remote(base = %.7s, remote = %.7s)\n", oid_to_hex(base), oid_to_hex(remote)); - repo_diff_setup(the_repository, &opt); + repo_diff_setup(o->repo, &opt); opt.flags.recursive = 1; opt.output_format = DIFF_FORMAT_NO_OUTPUT; diff_setup_done(&opt); @@ -190,7 +192,7 @@ static void diff_tree_local(struct notes_merge_options *o, trace_printf("\tdiff_tree_local(len = %i, base = %.7s, local = %.7s)\n", len, oid_to_hex(base), oid_to_hex(local)); - repo_diff_setup(the_repository, &opt); + repo_diff_setup(o->repo, &opt); opt.flags.recursive = 1; opt.output_format = DIFF_FORMAT_NO_OUTPUT; diff_setup_done(&opt); @@ -350,7 +352,7 @@ static int ll_merge_in_worktree(struct notes_merge_options *o, status = ll_merge(&result_buf, oid_to_hex(&p->obj), &base, NULL, &local, o->local_ref, &remote, o->remote_ref, - &the_index, NULL); + o->repo->index, NULL); free(base.ptr); free(local.ptr); @@ -556,7 +558,7 @@ int notes_merge(struct notes_merge_options *o, else if (!check_refname_format(o->local_ref, 0) && is_null_oid(&local_oid)) local = NULL; /* local_oid == null_oid indicates unborn ref */ - else if (!(local = lookup_commit_reference(the_repository, &local_oid))) + else if (!(local = lookup_commit_reference(o->repo, &local_oid))) die("Could not parse local commit %s (%s)", oid_to_hex(&local_oid), o->local_ref); trace_printf("\tlocal commit: %.7s\n", oid_to_hex(&local_oid)); @@ -574,7 +576,7 @@ int notes_merge(struct notes_merge_options *o, die("Failed to resolve remote notes ref '%s'", o->remote_ref); } - } else if (!(remote = lookup_commit_reference(the_repository, &remote_oid))) { + } else if (!(remote = lookup_commit_reference(o->repo, &remote_oid))) { die("Could not parse remote commit %s (%s)", oid_to_hex(&remote_oid), o->remote_ref); } @@ -647,7 +649,7 @@ int notes_merge(struct notes_merge_options *o, 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, + create_notes_commit(o->repo, local_tree, parents, o->commit_msg.buf, o->commit_msg.len, result_oid); } @@ -711,7 +713,7 @@ int notes_merge_commit(struct notes_merge_options *o, /* write file as blob, and add to partial_tree */ if (stat(path.buf, &st)) die_errno("Failed to stat '%s'", path.buf); - if (index_path(&the_index, &blob_oid, path.buf, &st, HASH_WRITE_OBJECT)) + if (index_path(o->repo->index, &blob_oid, path.buf, &st, HASH_WRITE_OBJECT)) die("Failed to write blob object from '%s'", path.buf); if (add_note(partial_tree, &obj_oid, &blob_oid, NULL)) die("Failed to add resolved note '%s' to notes tree", @@ -722,7 +724,7 @@ int notes_merge_commit(struct notes_merge_options *o, strbuf_setlen(&path, baselen); } - create_notes_commit(partial_tree, partial_commit->parents, msg, + create_notes_commit(o->repo, partial_tree, partial_commit->parents, msg, strlen(msg), result_oid); unuse_commit_buffer(partial_commit, buffer); if (o->verbosity >= 4) |