PyObject * Repository_merge(Repository *self, PyObject *py_oid) { git_merge_result *merge_result; git_merge_head *oid_merge_head; git_oid oid; const git_merge_opts default_opts = GIT_MERGE_OPTS_INIT; int err; size_t len; PyObject *py_merge_result; len = py_oid_to_git_oid(py_oid, &oid); if (len == 0) return NULL; err = git_merge_head_from_oid(&oid_merge_head, self->repo, &oid); if (err < 0) return Error_set(err); err = git_merge(&merge_result, self->repo, (const git_merge_head **)&oid_merge_head, 1, &default_opts); git_merge_head_free(oid_merge_head); if (err < 0) return Error_set(err); py_merge_result = git_merge_result_to_python(merge_result); return py_merge_result; }
void test_merge_workdir_fastforward__uptodate_merging_prev_commit(void) { git_oid their_oid; git_merge_head *their_heads[1]; git_merge_result *result; cl_git_pass(git_oid_fromstr(&their_oid, "c607fc30883e335def28cd686b51f6cfa02b06ec")); cl_git_pass(git_merge_head_from_oid(&their_heads[0], repo, &their_oid)); cl_git_pass(git_merge(&result, repo, (const git_merge_head **)their_heads, 1, NULL)); cl_assert(git_merge_result_is_uptodate(result)); git_merge_head_free(their_heads[0]); git_merge_result_free(result); }