diff options
author | Ben Straub <bs@github.com> | 2012-10-11 15:45:26 -0700 |
---|---|---|
committer | Ben Straub <bs@github.com> | 2012-10-11 15:45:26 -0700 |
commit | 80a6e86bb626acbf19088a9c8e780ebf151cd040 (patch) | |
tree | e448aa06ca71028960072a769160fc8ad74fb23b /src | |
parent | 26ddcfa4c4f3c404de6b7a12f803e43ff507c06f (diff) | |
parent | b73200c1ed55941bf165e1f10b5e42c7608d3f18 (diff) | |
download | libgit2-80a6e86bb626acbf19088a9c8e780ebf151cd040.tar.gz |
Merge pull request #974 from nulltoken/EEXISTS
Enforce returning of EEXISTS when trying to overwrite a reference
Diffstat (limited to 'src')
-rw-r--r-- | src/branch.c | 9 | ||||
-rw-r--r-- | src/refs.c | 4 |
2 files changed, 6 insertions, 7 deletions
diff --git a/src/branch.c b/src/branch.c index 6d497b055..d0bd1c45b 100644 --- a/src/branch.c +++ b/src/branch.c @@ -77,12 +77,11 @@ 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, repository, - git_buf_cstr(&canonical_branch_name), git_object_id(commit), force) < 0) - goto cleanup; + error = git_reference_create_oid(&branch, repository, + git_buf_cstr(&canonical_branch_name), git_object_id(commit), force); - *ref_out = branch; - error = 0; + if (!error) + *ref_out = branch; cleanup: git_object_free(commit); diff --git a/src/refs.c b/src/refs.c index 9dc422e1b..1d73b2677 100644 --- a/src/refs.c +++ b/src/refs.c @@ -1357,8 +1357,8 @@ int git_reference_rename(git_reference *ref, const char *new_name, int force) normalization_flags) < 0) return -1; - if (reference_can_write(ref->owner, normalized, ref->name, force) < 0) - return -1; + if ((result = reference_can_write(ref->owner, normalized, ref->name, force)) < 0) + return result; /* Initialize path now so we won't get an allocation failure once * we actually start removing things. */ |