diff options
Diffstat (limited to 'refs/packed-backend.c')
-rw-r--r-- | refs/packed-backend.c | 28 |
1 files changed, 7 insertions, 21 deletions
diff --git a/refs/packed-backend.c b/refs/packed-backend.c index 66c4574c99..97b6837767 100644 --- a/refs/packed-backend.c +++ b/refs/packed-backend.c @@ -1522,10 +1522,15 @@ static int packed_initial_transaction_commit(struct ref_store *ref_store, static int packed_delete_refs(struct ref_store *ref_store, const char *msg, struct string_list *refnames, unsigned int flags) { + struct packed_ref_store *refs = + packed_downcast(ref_store, REF_STORE_WRITE, "delete_refs"); struct strbuf err = STRBUF_INIT; struct ref_transaction *transaction; + struct string_list_item *item; int ret; + (void)refs; /* We need the check above, but don't use the variable */ + if (!refnames->nr) return 0; @@ -1535,30 +1540,10 @@ static int packed_delete_refs(struct ref_store *ref_store, const char *msg, * updates into a single transaction. */ - transaction = ref_store_transaction_begin(ref_store, 0, &err); + transaction = ref_store_transaction_begin(ref_store, &err); if (!transaction) return -1; - ret = packed_refs_delete_refs(ref_store, transaction, - msg, refnames, flags); - - ref_transaction_free(transaction); - return ret; -} - -int packed_refs_delete_refs(struct ref_store *ref_store, - struct ref_transaction *transaction, - const char *msg, - struct string_list *refnames, - unsigned int flags) -{ - struct strbuf err = STRBUF_INIT; - struct string_list_item *item; - int ret; - - /* Assert that the ref store refers to a packed backend. */ - packed_downcast(ref_store, REF_STORE_WRITE, "delete_refs"); - for_each_string_list_item(item, refnames) { if (ref_transaction_delete(transaction, item->string, NULL, flags, msg, &err)) { @@ -1578,6 +1563,7 @@ int packed_refs_delete_refs(struct ref_store *ref_store, error(_("could not delete references: %s"), err.buf); } + ref_transaction_free(transaction); strbuf_release(&err); return ret; } |