]> git.ipfire.org Git - thirdparty/git.git/commitdiff
refs: move `original_update_refname` to 'refs.c'
authorKarthik Nayak <karthik.188@gmail.com>
Tue, 7 May 2024 12:58:55 +0000 (14:58 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 7 May 2024 15:51:49 +0000 (08:51 -0700)
The files backend and the reftable backend implement
`original_update_refname` to obtain the original refname of the update.
Move it out to 'refs.c' and only expose it internally to the refs
library. This will be used in an upcoming commit to also introduce
another common functionality for the two backends.

We also rename the function to `ref_update_original_update_refname` to
keep it consistent with the upcoming other 'ref_update_*' functions
that'll be introduced.

Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
refs.c
refs/files-backend.c
refs/refs-internal.h
refs/reftable-backend.c

diff --git a/refs.c b/refs.c
index 9d722d798a5f7c1c74ce36a194815956e3aebdbb..990703ed16886a432e5e6c4955d15fe69b7ef568 100644 (file)
--- a/refs.c
+++ b/refs.c
@@ -2814,3 +2814,11 @@ int copy_existing_ref(const char *oldref, const char *newref, const char *logmsg
 {
        return refs_copy_existing_ref(get_main_ref_store(the_repository), oldref, newref, logmsg);
 }
+
+const char *ref_update_original_update_refname(struct ref_update *update)
+{
+       while (update->parent_update)
+               update = update->parent_update;
+
+       return update->refname;
+}
index 74a713090ca5506ee4bcf524e25df939351f5235..25e5d03496e8a01bb310babf9da69e2e8eff1eea 100644 (file)
@@ -2423,17 +2423,6 @@ static int split_symref_update(struct ref_update *update,
        return 0;
 }
 
-/*
- * Return the refname under which update was originally requested.
- */
-static const char *original_update_refname(struct ref_update *update)
-{
-       while (update->parent_update)
-               update = update->parent_update;
-
-       return update->refname;
-}
-
 /*
  * Check whether the REF_HAVE_OLD and old_oid values stored in update
  * are consistent with oid, which is the reference's current value. If
@@ -2450,16 +2439,16 @@ static int check_old_oid(struct ref_update *update, struct object_id *oid,
        if (is_null_oid(&update->old_oid))
                strbuf_addf(err, "cannot lock ref '%s': "
                            "reference already exists",
-                           original_update_refname(update));
+                           ref_update_original_update_refname(update));
        else if (is_null_oid(oid))
                strbuf_addf(err, "cannot lock ref '%s': "
                            "reference is missing but expected %s",
-                           original_update_refname(update),
+                           ref_update_original_update_refname(update),
                            oid_to_hex(&update->old_oid));
        else
                strbuf_addf(err, "cannot lock ref '%s': "
                            "is at %s but expected %s",
-                           original_update_refname(update),
+                           ref_update_original_update_refname(update),
                            oid_to_hex(oid),
                            oid_to_hex(&update->old_oid));
 
@@ -2513,7 +2502,7 @@ static int lock_ref_for_update(struct files_ref_store *refs,
 
                reason = strbuf_detach(err, NULL);
                strbuf_addf(err, "cannot lock ref '%s': %s",
-                           original_update_refname(update), reason);
+                           ref_update_original_update_refname(update), reason);
                free(reason);
                goto out;
        }
@@ -2533,7 +2522,7 @@ static int lock_ref_for_update(struct files_ref_store *refs,
                                if (update->flags & REF_HAVE_OLD) {
                                        strbuf_addf(err, "cannot lock ref '%s': "
                                                    "error reading reference",
-                                                   original_update_refname(update));
+                                                   ref_update_original_update_refname(update));
                                        ret = TRANSACTION_GENERIC_ERROR;
                                        goto out;
                                }
index 108f4ec419993d9493a438f07290a8b7cd6d0ff2..617b93a6c854bceaf9da67051e4b2e8b31f7b4df 100644 (file)
@@ -749,4 +749,9 @@ void base_ref_store_init(struct ref_store *refs, struct repository *repo,
  */
 struct ref_store *maybe_debug_wrap_ref_store(const char *gitdir, struct ref_store *store);
 
+/*
+ * Return the refname under which update was originally requested.
+ */
+const char *ref_update_original_update_refname(struct ref_update *update);
+
 #endif /* REFS_REFS_INTERNAL_H */
index e6122837c0a7f14d80f7e9709858fde5ad061d3c..fe4a7681a0944ec7fff17237252e4f10a939dd66 100644 (file)
@@ -578,16 +578,6 @@ static int reftable_be_read_symbolic_ref(struct ref_store *ref_store,
        return ret;
 }
 
-/*
- * Return the refname under which update was originally requested.
- */
-static const char *original_update_refname(struct ref_update *update)
-{
-       while (update->parent_update)
-               update = update->parent_update;
-       return update->refname;
-}
-
 struct reftable_transaction_update {
        struct ref_update *update;
        struct object_id current_oid;
@@ -866,7 +856,7 @@ static int reftable_be_transaction_prepare(struct ref_store *ref_store,
                        /* The reference does not exist, but we expected it to. */
                        strbuf_addf(err, _("cannot lock ref '%s': "
                                    "unable to resolve reference '%s'"),
-                                   original_update_refname(u), u->refname);
+                                   ref_update_original_update_refname(u), u->refname);
                        ret = -1;
                        goto done;
                }
@@ -938,17 +928,17 @@ static int reftable_be_transaction_prepare(struct ref_store *ref_store,
                if (u->flags & REF_HAVE_OLD && !oideq(&current_oid, &u->old_oid)) {
                        if (is_null_oid(&u->old_oid))
                                strbuf_addf(err, _("cannot lock ref '%s': "
-                                           "reference already exists"),
-                                           original_update_refname(u));
+                                                  "reference already exists"),
+                                           ref_update_original_update_refname(u));
                        else if (is_null_oid(&current_oid))
                                strbuf_addf(err, _("cannot lock ref '%s': "
-                                           "reference is missing but expected %s"),
-                                           original_update_refname(u),
+                                                  "reference is missing but expected %s"),
+                                           ref_update_original_update_refname(u),
                                            oid_to_hex(&u->old_oid));
                        else
                                strbuf_addf(err, _("cannot lock ref '%s': "
-                                           "is at %s but expected %s"),
-                                           original_update_refname(u),
+                                                  "is at %s but expected %s"),
+                                           ref_update_original_update_refname(u),
                                            oid_to_hex(&current_oid),
                                            oid_to_hex(&u->old_oid));
                        ret = -1;