]> git.ipfire.org Git - thirdparty/git.git/commitdiff
refs_read_raw_ref(): new function
authorMichael Haggerty <mhagger@alum.mit.edu>
Mon, 20 Mar 2017 16:33:07 +0000 (17:33 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 14 Apr 2017 10:54:31 +0000 (03:54 -0700)
Extract a new function from `refs_resolve_ref_unsafe()`. It will be
useful elsewhere.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
refs.c
refs/refs-internal.h

diff --git a/refs.c b/refs.c
index bad05ba8619c65e0143522cdeb220f692a0951bb..aa461156c4eb3affbda8ed6e73a4283d19f58eb9 100644 (file)
--- a/refs.c
+++ b/refs.c
@@ -1326,6 +1326,13 @@ int for_each_rawref(each_ref_fn fn, void *cb_data)
        return refs_for_each_rawref(get_main_ref_store(), fn, cb_data);
 }
 
+int refs_read_raw_ref(struct ref_store *ref_store,
+                     const char *refname, unsigned char *sha1,
+                     struct strbuf *referent, unsigned int *type)
+{
+       return ref_store->be->read_raw_ref(ref_store, refname, sha1, referent, type);
+}
+
 /* This function needs to return a meaningful errno on failure */
 const char *refs_resolve_ref_unsafe(struct ref_store *refs,
                                    const char *refname,
@@ -1362,8 +1369,8 @@ const char *refs_resolve_ref_unsafe(struct ref_store *refs,
        for (symref_count = 0; symref_count < SYMREF_MAXDEPTH; symref_count++) {
                unsigned int read_flags = 0;
 
-               if (refs->be->read_raw_ref(refs, refname,
-                                          sha1, &sb_refname, &read_flags)) {
+               if (refs_read_raw_ref(refs, refname,
+                                     sha1, &sb_refname, &read_flags)) {
                        *flags |= read_flags;
                        if (errno != ENOENT || (resolve_flags & RESOLVE_REF_READING))
                                return NULL;
index 690498698e41b75cf7a194ac03cafd778f0f19f1..6ee9f20dbc0e71bd37be0ca260eba6db7695a569 100644 (file)
@@ -165,6 +165,10 @@ struct ref_update {
        const char refname[FLEX_ARRAY];
 };
 
+int refs_read_raw_ref(struct ref_store *ref_store,
+                     const char *refname, unsigned char *sha1,
+                     struct strbuf *referent, unsigned int *type);
+
 /*
  * Add a ref_update with the specified properties to transaction, and
  * return a pointer to the new object. This function does not verify