refs: make verify_refname_available() virtual
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e1e33b722c
commit
62665823d2
10
refs.c
10
refs.c
@ -1428,3 +1428,13 @@ int ref_transaction_commit(struct ref_transaction *transaction,
|
||||
|
||||
return refs->be->transaction_commit(refs, transaction, err);
|
||||
}
|
||||
|
||||
int verify_refname_available(const char *refname,
|
||||
const struct string_list *extra,
|
||||
const struct string_list *skip,
|
||||
struct strbuf *err)
|
||||
{
|
||||
struct ref_store *refs = get_ref_store(NULL);
|
||||
|
||||
return refs->be->verify_refname_available(refs, refname, extra, skip, err);
|
||||
}
|
||||
|
@ -2549,13 +2549,14 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
int verify_refname_available(const char *newname,
|
||||
const struct string_list *extras,
|
||||
const struct string_list *skip,
|
||||
struct strbuf *err)
|
||||
static int files_verify_refname_available(struct ref_store *ref_store,
|
||||
const char *newname,
|
||||
const struct string_list *extras,
|
||||
const struct string_list *skip,
|
||||
struct strbuf *err)
|
||||
{
|
||||
struct files_ref_store *refs =
|
||||
get_files_ref_store(NULL, "verify_refname_available");
|
||||
files_downcast(ref_store, 1, "verify_refname_available");
|
||||
struct ref_dir *packed_refs = get_packed_refs(refs);
|
||||
struct ref_dir *loose_refs = get_loose_refs(refs);
|
||||
|
||||
@ -4021,5 +4022,6 @@ struct ref_storage_be refs_be_files = {
|
||||
files_ref_store_create,
|
||||
files_transaction_commit,
|
||||
|
||||
files_read_raw_ref
|
||||
files_read_raw_ref,
|
||||
files_verify_refname_available
|
||||
};
|
||||
|
@ -542,6 +542,12 @@ typedef int read_raw_ref_fn(struct ref_store *ref_store,
|
||||
const char *refname, unsigned char *sha1,
|
||||
struct strbuf *referent, unsigned int *type);
|
||||
|
||||
typedef int verify_refname_available_fn(struct ref_store *ref_store,
|
||||
const char *newname,
|
||||
const struct string_list *extras,
|
||||
const struct string_list *skip,
|
||||
struct strbuf *err);
|
||||
|
||||
struct ref_storage_be {
|
||||
struct ref_storage_be *next;
|
||||
const char *name;
|
||||
@ -549,6 +555,7 @@ struct ref_storage_be {
|
||||
ref_transaction_commit_fn *transaction_commit;
|
||||
|
||||
read_raw_ref_fn *read_raw_ref;
|
||||
verify_refname_available_fn *verify_refname_available;
|
||||
};
|
||||
|
||||
extern struct ref_storage_be refs_be_files;
|
||||
|
Loading…
Reference in New Issue
Block a user