]> git.ipfire.org Git - thirdparty/git.git/commitdiff
refs: export `ref_transaction_update_reflog()`
authorPatrick Steinhardt <ps@pks.im>
Wed, 6 Aug 2025 05:54:14 +0000 (07:54 +0200)
committerJunio C Hamano <gitster@pobox.com>
Wed, 6 Aug 2025 14:36:29 +0000 (07:36 -0700)
In a subsequent commit we'll add another user that wants to write reflog
entries. This requires them to call `ref_transaction_update_reflog()`,
but that function is local to "refs.c".

Export the function to prepare for the change. While at it, drop the
`flags` field, as all callers are for now expected to use the same flags
anyway.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
refs.c
refs.h

diff --git a/refs.c b/refs.c
index dce5c49ca2ba65fd6a2974e38f67134215bee369..8aa9f7236a38296b343335203247e26228dc659a 100644 (file)
--- a/refs.c
+++ b/refs.c
@@ -1371,27 +1371,21 @@ int ref_transaction_update(struct ref_transaction *transaction,
        return 0;
 }
 
-/*
- * Similar to`ref_transaction_update`, but this function is only for adding
- * a reflog update. Supports providing custom committer information. The index
- * field can be utiltized to order updates as desired. When not used, the
- * updates default to being ordered by refname.
- */
-static int ref_transaction_update_reflog(struct ref_transaction *transaction,
-                                        const char *refname,
-                                        const struct object_id *new_oid,
-                                        const struct object_id *old_oid,
-                                        const char *committer_info,
-                                        unsigned int flags,
-                                        const char *msg,
-                                        uint64_t index,
-                                        struct strbuf *err)
+int ref_transaction_update_reflog(struct ref_transaction *transaction,
+                                 const char *refname,
+                                 const struct object_id *new_oid,
+                                 const struct object_id *old_oid,
+                                 const char *committer_info,
+                                 const char *msg,
+                                 uint64_t index,
+                                 struct strbuf *err)
 {
        struct ref_update *update;
+       unsigned int flags;
 
        assert(err);
 
-       flags |= REF_LOG_ONLY | REF_FORCE_CREATE_REFLOG | REF_NO_DEREF;
+       flags = REF_HAVE_OLD | REF_HAVE_NEW | REF_LOG_ONLY | REF_FORCE_CREATE_REFLOG | REF_NO_DEREF;
 
        if (!transaction_refname_valid(refname, new_oid, flags, err))
                return -1;
@@ -3019,8 +3013,7 @@ static int migrate_one_reflog_entry(struct object_id *old_oid,
 
        ret = ref_transaction_update_reflog(data->transaction, data->refname,
                                            new_oid, old_oid, data->sb->buf,
-                                           REF_HAVE_NEW | REF_HAVE_OLD, msg,
-                                           data->index++, data->errbuf);
+                                           msg, data->index++, data->errbuf);
        return ret;
 }
 
diff --git a/refs.h b/refs.h
index 46a6008e07f2624239139cd8b2ff712545f07d3f..253dd8f4d5d7c4cea7221e546599009596f19e78 100644 (file)
--- a/refs.h
+++ b/refs.h
@@ -795,6 +795,21 @@ int ref_transaction_update(struct ref_transaction *transaction,
                           unsigned int flags, const char *msg,
                           struct strbuf *err);
 
+/*
+ * Similar to `ref_transaction_update`, but this function is only for adding
+ * a reflog update. Supports providing custom committer information. The index
+ * field can be utiltized to order updates as desired. When set to zero, the
+ * updates default to being ordered by refname.
+ */
+int ref_transaction_update_reflog(struct ref_transaction *transaction,
+                                 const char *refname,
+                                 const struct object_id *new_oid,
+                                 const struct object_id *old_oid,
+                                 const char *committer_info,
+                                 const char *msg,
+                                 uint64_t index,
+                                 struct strbuf *err);
+
 /*
  * Add a reference creation to transaction. new_oid is the value that
  * the reference should have after the update; it must not be