Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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);
}