diff options
-rw-r--r-- | refs.c | 7 | ||||
-rw-r--r-- | refs/files-backend.c | 6 | ||||
-rw-r--r-- | refs/refs-internal.h | 3 |
3 files changed, 14 insertions, 2 deletions
@@ -1532,3 +1532,10 @@ int initial_ref_transaction_commit(struct ref_transaction *transaction, return refs->be->initial_transaction_commit(refs, transaction, err); } + +int delete_refs(struct string_list *refnames, unsigned int flags) +{ + struct ref_store *refs = get_ref_store(NULL); + + return refs->be->delete_refs(refs, refnames, flags); +} diff --git a/refs/files-backend.c b/refs/files-backend.c index 0a511bf5a..33ec53038 100644 --- a/refs/files-backend.c +++ b/refs/files-backend.c @@ -2451,10 +2451,11 @@ static int delete_ref_loose(struct ref_lock *lock, int flag, struct strbuf *err) return 0; } -int delete_refs(struct string_list *refnames, unsigned int flags) +static int files_delete_refs(struct ref_store *ref_store, + struct string_list *refnames, unsigned int flags) { struct files_ref_store *refs = - get_files_ref_store(NULL, "delete_refs"); + files_downcast(ref_store, 0, "delete_refs"); struct strbuf err = STRBUF_INIT; int i, result = 0; @@ -4067,6 +4068,7 @@ struct ref_storage_be refs_be_files = { files_pack_refs, files_peel_ref, files_create_symref, + files_delete_refs, files_ref_iterator_begin, files_read_raw_ref, diff --git a/refs/refs-internal.h b/refs/refs-internal.h index 08c85861e..ade65010d 100644 --- a/refs/refs-internal.h +++ b/refs/refs-internal.h @@ -490,6 +490,8 @@ typedef int create_symref_fn(struct ref_store *ref_store, const char *ref_target, const char *refs_heads_master, const char *logmsg); +typedef int delete_refs_fn(struct ref_store *ref_store, + struct string_list *refnames, unsigned int flags); /* * Iterate over the references in the specified ref_store that are @@ -587,6 +589,7 @@ struct ref_storage_be { pack_refs_fn *pack_refs; peel_ref_fn *peel_ref; create_symref_fn *create_symref; + delete_refs_fn *delete_refs; ref_iterator_begin_fn *iterator_begin; read_raw_ref_fn *read_raw_ref; |