Move the check that `transaction->state` is valid from `files_transaction_commit()` to `ref_transaction_commit()`, where other future reference backends can benefit from it as well. Signed-off-by: Michael Haggerty <mhagger@xxxxxxxxxxxx> --- refs.c | 12 ++++++++++++ refs/files-backend.c | 3 --- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/refs.c b/refs.c index 989462c972..f8f41ffb04 100644 --- a/refs.c +++ b/refs.c @@ -1694,6 +1694,18 @@ int ref_transaction_commit(struct ref_transaction *transaction, { struct ref_store *refs = transaction->ref_store; + switch (transaction->state) { + case REF_TRANSACTION_OPEN: + /* Good. */ + break; + case REF_TRANSACTION_CLOSED: + die("BUG: prepare called on a closed reference transaction"); + break; + default: + die("BUG: unexpected reference transaction state"); + break; + } + if (getenv(GIT_QUARANTINE_ENVIRONMENT)) { strbuf_addstr(err, _("ref updates forbidden inside quarantine environment")); diff --git a/refs/files-backend.c b/refs/files-backend.c index 2c70de5209..a4261d4683 100644 --- a/refs/files-backend.c +++ b/refs/files-backend.c @@ -2874,9 +2874,6 @@ static int files_transaction_commit(struct ref_store *ref_store, assert(err); - if (transaction->state != REF_TRANSACTION_OPEN) - die("BUG: commit called for transaction that is not open"); - if (!transaction->nr) goto cleanup; -- 2.11.0