Signed-off-by: Michael Haggerty <[email protected]>
---
refs.c | 38 +++++++++++++++-----------------------
1 file changed, 15 insertions(+), 23 deletions(-)
diff --git a/refs.c b/refs.c
index 9b68aec..a55d541 100644
--- a/refs.c
+++ b/refs.c
@@ -2770,8 +2770,10 @@ static int rename_ref_available(const char *oldname,
const char *newname)
return ret;
}
-static int write_ref_sha1(struct ref_lock *lock, const unsigned char *sha1,
- const char *logmsg);
+static int write_ref_to_lockfile(struct ref_lock *lock,
+ const unsigned char *sha1);
+static int commit_ref_update(struct ref_lock *lock,
+ const unsigned char *sha1, const char *logmsg);
int rename_ref(const char *oldrefname, const char *newrefname, const char
*logmsg)
{
@@ -2829,7 +2831,8 @@ int rename_ref(const char *oldrefname, const char
*newrefname, const char *logms
goto rollback;
}
hashcpy(lock->old_sha1, orig_sha1);
- if (write_ref_sha1(lock, orig_sha1, logmsg)) {
+ if (write_ref_to_lockfile(lock, orig_sha1) ||
+ commit_ref_update(lock, orig_sha1, logmsg)) {
error("unable to write current sha1 into %s", newrefname);
goto rollback;
}
@@ -2845,7 +2848,8 @@ int rename_ref(const char *oldrefname, const char
*newrefname, const char *logms
flag = log_all_ref_updates;
log_all_ref_updates = 0;
- if (write_ref_sha1(lock, orig_sha1, NULL))
+ if (write_ref_to_lockfile(lock, orig_sha1) ||
+ commit_ref_update(lock, orig_sha1, NULL))
error("unable to write current sha1 into %s", oldrefname);
log_all_ref_updates = flag;
@@ -3093,21 +3097,6 @@ static int commit_ref_update(struct ref_lock *lock,
return 0;
}
-/*
- * Write sha1 as the new value of the reference specified by the
- * (open) lock. On error, roll back the lockfile and set errno
- * appropriately.
- */
-static int write_ref_sha1(struct ref_lock *lock,
- const unsigned char *sha1, const char *logmsg)
-{
- if (write_ref_to_lockfile(lock, sha1) ||
- commit_ref_update(lock, sha1, logmsg))
- return -1;
-
- return 0;
-}
-
int create_symref(const char *ref_target, const char *refs_heads_master,
const char *logmsg)
{
@@ -3801,15 +3790,18 @@ int ref_transaction_commit(struct ref_transaction
*transaction,
*/
unlock_ref(update->lock);
update->lock = NULL;
- } else if (write_ref_sha1(update->lock,
update->new_sha1,
- update->msg)) {
- update->lock = NULL; /* freed by write_ref_sha1
*/
+ } else if (write_ref_to_lockfile(update->lock,
+ update->new_sha1) ||
+ commit_ref_update(update->lock,
+ update->new_sha1,
+ update->msg)) {
+ update->lock = NULL; /* freed by the above
calls */
strbuf_addf(err, "Cannot update the ref '%s'.",
update->refname);
ret = TRANSACTION_GENERIC_ERROR;
goto cleanup;
} else {
- /* freed by write_ref_sha1(): */
+ /* freed by the above calls: */
update->lock = NULL;
}
}
--
2.1.4
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html