summaryrefslogtreecommitdiff
path: root/refs/refs-internal.h
diff options
context:
space:
mode:
authorDavid Turner <dturner@twopensource.com>2016-09-04 18:08:40 +0200
committerJunio C Hamano <gitster@pobox.com>2016-09-09 15:28:14 -0700
commita27dcf89b6867577bb714e181dd181cd1a1e6512 (patch)
treea99616e09117889b4b025f3ac0b1e71785bab47f /refs/refs-internal.h
parentfc6814637d2e756029b45cb5fd952359bfec6f88 (diff)
downloadgit-a27dcf89b6867577bb714e181dd181cd1a1e6512.tar.gz
refs: make delete_refs() virtual
In the file-based backend, delete_refs has some special optimization to deal with packed refs. In other backends, we might be able to make ref deletion faster by putting all deletions into a single transaction. So we need a special backend function for this. Signed-off-by: David Turner <dturner@twopensource.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'refs/refs-internal.h')
-rw-r--r--refs/refs-internal.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/refs/refs-internal.h b/refs/refs-internal.h
index 08c85861ec..ade65010d4 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;