lock_ref_for_update(): add a files_ref_store argument

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Michael Haggerty 2016-09-04 18:08:33 +02:00 committed by Junio C Hamano
parent f18a789250
commit b3bbbc5c24
1 changed files with 6 additions and 5 deletions

View File

@ -3482,20 +3482,21 @@ static const char *original_update_refname(struct ref_update *update)
* - If it is an update of head_ref, add a corresponding REF_LOG_ONLY * - If it is an update of head_ref, add a corresponding REF_LOG_ONLY
* update of HEAD. * update of HEAD.
*/ */
static int lock_ref_for_update(struct ref_update *update, static int lock_ref_for_update(struct files_ref_store *refs,
struct ref_update *update,
struct ref_transaction *transaction, struct ref_transaction *transaction,
const char *head_ref, const char *head_ref,
struct string_list *affected_refnames, struct string_list *affected_refnames,
struct strbuf *err) struct strbuf *err)
{ {
struct files_ref_store *refs =
get_files_ref_store(NULL, "lock_ref_for_update");
struct strbuf referent = STRBUF_INIT; struct strbuf referent = STRBUF_INIT;
int mustexist = (update->flags & REF_HAVE_OLD) && int mustexist = (update->flags & REF_HAVE_OLD) &&
!is_null_sha1(update->old_sha1); !is_null_sha1(update->old_sha1);
int ret; int ret;
struct ref_lock *lock; struct ref_lock *lock;


assert_main_repository(&refs->base, "lock_ref_for_update");

if ((update->flags & REF_HAVE_NEW) && is_null_sha1(update->new_sha1)) if ((update->flags & REF_HAVE_NEW) && is_null_sha1(update->new_sha1))
update->flags |= REF_DELETING; update->flags |= REF_DELETING;


@ -3720,8 +3721,8 @@ static int files_transaction_commit(struct ref_store *ref_store,
for (i = 0; i < transaction->nr; i++) { for (i = 0; i < transaction->nr; i++) {
struct ref_update *update = transaction->updates[i]; struct ref_update *update = transaction->updates[i];


ret = lock_ref_for_update(update, transaction, head_ref, ret = lock_ref_for_update(refs, update, transaction,
&affected_refnames, err); head_ref, &affected_refnames, err);
if (ret) if (ret)
goto cleanup; goto cleanup;
} }