[PATCH v2 20/38] refs: make verify_refname_available() virtual
flat view
STALE3693d
From: Michael Haggerty <hidden>
Date: 2016-09-04 16:13:26
Subsystem:
the rest · Maintainer:
Linus Torvalds
Revision v2 of 2 in this series.
Revisions (2)
- v1 [diff vs current]
- v2 current
Signed-off-by: Michael Haggerty <redacted> Signed-off-by: Junio C Hamano <redacted> --- refs.c | 10 ++++++++++ refs/files-backend.c | 14 ++++++++------ refs/refs-internal.h | 7 +++++++ 3 files changed, 25 insertions(+), 6 deletions(-)
diff --git a/refs.c b/refs.c
index 7a7adeb..662c417 100644
--- a/refs.c
+++ b/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); +}
diff --git a/refs/files-backend.c b/refs/files-backend.c
index ff11a51..4e1d431 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c@@ -2549,13 +2549,14 @@ static int rename_tmp_log(const char *newrefname) 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);
@@ -4031,5 +4032,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 };
diff --git a/refs/refs-internal.h b/refs/refs-internal.h
index 19cb6e1..6c698f4 100644
--- a/refs/refs-internal.h
+++ b/refs/refs-internal.h@@ -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;
--
2.9.3