Merge branch 'jk/lock-ref-sha1-basic-return-errors'

Correct an API anomaly.

* jk/lock-ref-sha1-basic-return-errors:
  lock_ref_sha1_basic: do not die on locking errors
This commit is contained in:
Junio C Hamano 2014-12-22 12:26:27 -08:00
commit 3cdb0cb610

10
refs.c
View File

@ -2318,6 +2318,7 @@ static struct ref_lock *lock_ref_sha1_basic(const char *refname,
lock->lock_fd = hold_lock_file_for_update(lock->lk, ref_file, lflags); lock->lock_fd = hold_lock_file_for_update(lock->lk, ref_file, lflags);
if (lock->lock_fd < 0) { if (lock->lock_fd < 0) {
last_errno = errno;
if (errno == ENOENT && --attempts_remaining > 0) if (errno == ENOENT && --attempts_remaining > 0)
/* /*
* Maybe somebody just deleted one of the * Maybe somebody just deleted one of the
@ -2325,8 +2326,13 @@ static struct ref_lock *lock_ref_sha1_basic(const char *refname,
* again: * again:
*/ */
goto retry; goto retry;
else else {
unable_to_lock_die(ref_file, errno); struct strbuf err = STRBUF_INIT;
unable_to_lock_message(ref_file, errno, &err);
error("%s", err.buf);
strbuf_reset(&err);
goto error_return;
}
} }
return old_sha1 ? verify_lock(lock, old_sha1, mustexist) : lock; return old_sha1 ? verify_lock(lock, old_sha1, mustexist) : lock;