зеркало из https://github.com/microsoft/git.git
refs/files-backend: convert static functions to object_id
Convert several static functions to take pointers to struct object_id. Change the relevant parameters to write_packed_entry to be const, as we don't modify them. Rename lock_ref_sha1_basic to lock_ref_oid_basic to reflect its new argument. Update the docstring for verify lock to account for the new parameter name, and note additionally that the old_oid may be NULL. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
99afe91a6c
Коммит
4f01e5080c
|
@ -770,13 +770,13 @@ static struct ref_iterator *files_ref_iterator_begin(
|
|||
}
|
||||
|
||||
/*
|
||||
* Verify that the reference locked by lock has the value old_sha1.
|
||||
* Fail if the reference doesn't exist and mustexist is set. Return 0
|
||||
* on success. On error, write an error message to err, set errno, and
|
||||
* return a negative value.
|
||||
* Verify that the reference locked by lock has the value old_oid
|
||||
* (unless it is NULL). Fail if the reference doesn't exist and
|
||||
* mustexist is set. Return 0 on success. On error, write an error
|
||||
* message to err, set errno, and return a negative value.
|
||||
*/
|
||||
static int verify_lock(struct ref_store *ref_store, struct ref_lock *lock,
|
||||
const unsigned char *old_sha1, int mustexist,
|
||||
const struct object_id *old_oid, int mustexist,
|
||||
struct strbuf *err)
|
||||
{
|
||||
assert(err);
|
||||
|
@ -784,7 +784,7 @@ static int verify_lock(struct ref_store *ref_store, struct ref_lock *lock,
|
|||
if (refs_read_ref_full(ref_store, lock->ref_name,
|
||||
mustexist ? RESOLVE_REF_READING : 0,
|
||||
&lock->old_oid, NULL)) {
|
||||
if (old_sha1) {
|
||||
if (old_oid) {
|
||||
int save_errno = errno;
|
||||
strbuf_addf(err, "can't verify ref '%s'", lock->ref_name);
|
||||
errno = save_errno;
|
||||
|
@ -794,11 +794,11 @@ static int verify_lock(struct ref_store *ref_store, struct ref_lock *lock,
|
|||
return 0;
|
||||
}
|
||||
}
|
||||
if (old_sha1 && hashcmp(lock->old_oid.hash, old_sha1)) {
|
||||
if (old_oid && oidcmp(&lock->old_oid, old_oid)) {
|
||||
strbuf_addf(err, "ref '%s' is at %s but expected %s",
|
||||
lock->ref_name,
|
||||
oid_to_hex(&lock->old_oid),
|
||||
sha1_to_hex(old_sha1));
|
||||
oid_to_hex(old_oid));
|
||||
errno = EBUSY;
|
||||
return -1;
|
||||
}
|
||||
|
@ -828,22 +828,22 @@ static int create_reflock(const char *path, void *cb)
|
|||
* Locks a ref returning the lock on success and NULL on failure.
|
||||
* On failure errno is set to something meaningful.
|
||||
*/
|
||||
static struct ref_lock *lock_ref_sha1_basic(struct files_ref_store *refs,
|
||||
const char *refname,
|
||||
const unsigned char *old_sha1,
|
||||
const struct string_list *extras,
|
||||
const struct string_list *skip,
|
||||
unsigned int flags, int *type,
|
||||
struct strbuf *err)
|
||||
static struct ref_lock *lock_ref_oid_basic(struct files_ref_store *refs,
|
||||
const char *refname,
|
||||
const struct object_id *old_oid,
|
||||
const struct string_list *extras,
|
||||
const struct string_list *skip,
|
||||
unsigned int flags, int *type,
|
||||
struct strbuf *err)
|
||||
{
|
||||
struct strbuf ref_file = STRBUF_INIT;
|
||||
struct ref_lock *lock;
|
||||
int last_errno = 0;
|
||||
int mustexist = (old_sha1 && !is_null_sha1(old_sha1));
|
||||
int mustexist = (old_oid && !is_null_oid(old_oid));
|
||||
int resolve_flags = RESOLVE_REF_NO_RECURSE;
|
||||
int resolved;
|
||||
|
||||
files_assert_main_repository(refs, "lock_ref_sha1_basic");
|
||||
files_assert_main_repository(refs, "lock_ref_oid_basic");
|
||||
assert(err);
|
||||
|
||||
lock = xcalloc(1, sizeof(struct ref_lock));
|
||||
|
@ -909,7 +909,7 @@ static struct ref_lock *lock_ref_sha1_basic(struct files_ref_store *refs,
|
|||
goto error_return;
|
||||
}
|
||||
|
||||
if (verify_lock(&refs->base, lock, old_sha1, mustexist, err)) {
|
||||
if (verify_lock(&refs->base, lock, old_oid, mustexist, err)) {
|
||||
last_errno = errno;
|
||||
goto error_return;
|
||||
}
|
||||
|
@ -1324,8 +1324,8 @@ static int files_copy_or_rename_ref(struct ref_store *ref_store,
|
|||
|
||||
logmoved = log;
|
||||
|
||||
lock = lock_ref_sha1_basic(refs, newrefname, NULL, NULL, NULL,
|
||||
REF_NODEREF, NULL, &err);
|
||||
lock = lock_ref_oid_basic(refs, newrefname, NULL, NULL, NULL,
|
||||
REF_NODEREF, NULL, &err);
|
||||
if (!lock) {
|
||||
if (copy)
|
||||
error("unable to copy '%s' to '%s': %s", oldrefname, newrefname, err.buf);
|
||||
|
@ -1347,8 +1347,8 @@ static int files_copy_or_rename_ref(struct ref_store *ref_store,
|
|||
goto out;
|
||||
|
||||
rollback:
|
||||
lock = lock_ref_sha1_basic(refs, oldrefname, NULL, NULL, NULL,
|
||||
REF_NODEREF, NULL, &err);
|
||||
lock = lock_ref_oid_basic(refs, oldrefname, NULL, NULL, NULL,
|
||||
REF_NODEREF, NULL, &err);
|
||||
if (!lock) {
|
||||
error("unable to lock %s for rollback: %s", oldrefname, err.buf);
|
||||
strbuf_release(&err);
|
||||
|
@ -1763,9 +1763,9 @@ static int files_create_symref(struct ref_store *ref_store,
|
|||
struct ref_lock *lock;
|
||||
int ret;
|
||||
|
||||
lock = lock_ref_sha1_basic(refs, refname, NULL,
|
||||
NULL, NULL, REF_NODEREF, NULL,
|
||||
&err);
|
||||
lock = lock_ref_oid_basic(refs, refname, NULL,
|
||||
NULL, NULL, REF_NODEREF, NULL,
|
||||
&err);
|
||||
if (!lock) {
|
||||
error("%s", err.buf);
|
||||
strbuf_release(&err);
|
||||
|
@ -2937,9 +2937,9 @@ static int files_reflog_expire(struct ref_store *ref_store,
|
|||
* reference itself, plus we might need to update the
|
||||
* reference if --updateref was specified:
|
||||
*/
|
||||
lock = lock_ref_sha1_basic(refs, refname, oid->hash,
|
||||
NULL, NULL, REF_NODEREF,
|
||||
&type, &err);
|
||||
lock = lock_ref_oid_basic(refs, refname, oid,
|
||||
NULL, NULL, REF_NODEREF,
|
||||
&type, &err);
|
||||
if (!lock) {
|
||||
error("cannot lock ref '%s': %s", refname, err.buf);
|
||||
strbuf_release(&err);
|
||||
|
|
Загрузка…
Ссылка в новой задаче