summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarlos Martín Nieto <carlos@cmartin.tk>2012-09-30 11:37:53 +0200
committerCarlos Martín Nieto <carlos@cmartin.tk>2012-09-30 11:56:37 +0200
commitc128149315c67d52c4503e294bfbd2653e0a8307 (patch)
tree44b028d5a701d965d156ea3b08bbf33e561d276d /src
parent3665ba8eeb4f8b2546517cd208e940b128dd8a46 (diff)
downloadlibgit2-c128149315c67d52c4503e294bfbd2653e0a8307.tar.gz
refs: propagate EEXISTS
Indicate whether the error comes from the ref already existing or elsewhere. We always perform the check and this lets the user write more concise code.
Diffstat (limited to 'src')
-rw-r--r--src/refs.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/refs.c b/src/refs.c
index 693870a0b..903acccbb 100644
--- a/src/refs.c
+++ b/src/refs.c
@@ -1199,6 +1199,7 @@ int git_reference_create_symbolic(
{
char normalized[GIT_REFNAME_MAX];
git_reference *ref = NULL;
+ int error;
if (git_reference__normalize_name_lax(
normalized,
@@ -1206,8 +1207,8 @@ int git_reference_create_symbolic(
name) < 0)
return -1;
- if (reference_can_write(repo, normalized, NULL, force) < 0)
- return -1;
+ if ((error = reference_can_write(repo, normalized, NULL, force)) < 0)
+ return error;
if (reference_alloc(&ref, repo, normalized) < 0)
return -1;
@@ -1236,6 +1237,7 @@ int git_reference_create_oid(
const git_oid *id,
int force)
{
+ int error;
git_reference *ref = NULL;
char normalized[GIT_REFNAME_MAX];
@@ -1245,8 +1247,8 @@ int git_reference_create_oid(
name) < 0)
return -1;
- if (reference_can_write(repo, normalized, NULL, force) < 0)
- return -1;
+ if ((error = reference_can_write(repo, normalized, NULL, force)) < 0)
+ return error;
if (reference_alloc(&ref, repo, name) < 0)
return -1;