diff options
author | nulltoken <emeric.fermas@gmail.com> | 2012-07-19 15:39:16 +0200 |
---|---|---|
committer | nulltoken <emeric.fermas@gmail.com> | 2012-07-24 16:09:43 +0200 |
commit | b308c11e4ee7d05df4906e04b4008615f41e069c (patch) | |
tree | 405f8438f67330755541c935c52f4f0fd3014951 /src/branch.c | |
parent | 326ca710a04cc43d3d5abba6ceb0452c126b7d1a (diff) | |
download | libgit2-b308c11e4ee7d05df4906e04b4008615f41e069c.tar.gz |
branch: change git_branch_create() to make it return a reference
Diffstat (limited to 'src/branch.c')
-rw-r--r-- | src/branch.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/branch.c b/src/branch.c index a59577d67..789f52bb6 100644 --- a/src/branch.c +++ b/src/branch.c @@ -49,8 +49,7 @@ static int create_error_invalid(const char *msg) } int git_branch_create( - git_oid *oid_out, - git_repository *repo, + git_reference **ref_out, const char *branch_name, const git_object *target, int force) @@ -61,10 +60,7 @@ int git_branch_create( git_buf canonical_branch_name = GIT_BUF_INIT; int error = -1; - assert(repo && branch_name && target && oid_out); - - if (git_object_owner(target) != repo) - return create_error_invalid("The given target does not belong to this repository"); + assert(branch_name && target && ref_out); target_type = git_object_type(target); @@ -91,17 +87,17 @@ int git_branch_create( if (git_buf_joinpath(&canonical_branch_name, GIT_REFS_HEADS_DIR, branch_name) < 0) goto cleanup; - if (git_reference_create_oid(&branch, repo, git_buf_cstr(&canonical_branch_name), git_object_id(commit), force) < 0) + if (git_reference_create_oid(&branch, git_object_owner(commit), + git_buf_cstr(&canonical_branch_name), git_object_id(commit), force) < 0) goto cleanup; - git_oid_cpy(oid_out, git_reference_oid(branch)); + *ref_out = branch; error = 0; cleanup: if (target_type == GIT_OBJ_TAG) git_object_free(commit); - git_reference_free(branch); git_buf_free(&canonical_branch_name); return error; } |