mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-29 22:25:04 +00:00
reference_rename: make sure to rollback
Actually rollback when we can't create the new reference. Mark the rolled back reference as loose. Signed-off-by: schu <schu-github@schulog.org>
This commit is contained in:
parent
bdbdefac39
commit
64093ce518
@ -1352,7 +1352,7 @@ int git_reference_rename(git_reference *ref, const char *new_name, int force)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (error < GIT_SUCCESS)
|
if (error < GIT_SUCCESS)
|
||||||
goto cleanup;
|
goto rollback;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check if we have to update HEAD.
|
* Check if we have to update HEAD.
|
||||||
@ -1398,6 +1398,9 @@ rollback:
|
|||||||
error = git_reference_create_oid(
|
error = git_reference_create_oid(
|
||||||
NULL, ref->owner, ref->name, &ref->target.oid, 0);
|
NULL, ref->owner, ref->name, &ref->target.oid, 0);
|
||||||
|
|
||||||
|
/* The reference is no longer packed */
|
||||||
|
ref->flags &= ~GIT_REF_PACKED;
|
||||||
|
|
||||||
return error == GIT_SUCCESS ?
|
return error == GIT_SUCCESS ?
|
||||||
git__rethrow(GIT_ERROR, "Failed to rename reference. Did rollback") :
|
git__rethrow(GIT_ERROR, "Failed to rename reference. Did rollback") :
|
||||||
git__rethrow(error, "Failed to rename reference. Failed to rollback");
|
git__rethrow(error, "Failed to rename reference. Failed to rollback");
|
||||||
|
Loading…
Reference in New Issue
Block a user