On 25/07/22 01:20PM, Patrick Steinhardt wrote: > 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 functino is local to "refs.c". s/functino/function/ > 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@xxxxxx> > --- > refs.c | 29 +++++++++++------------------ > refs.h | 15 +++++++++++++++ > 2 files changed, 26 insertions(+), 18 deletions(-) > > diff --git a/refs.c b/refs.c > index 73913b6627b..188989e4113 100644 > --- a/refs.c > +++ b/refs.c > @@ -1362,27 +1362,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; > @@ -3010,8 +3004,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); Right now this is only the single caller for `ref_transaction_update_reflog()`. Since it is intented for all callers to use the same set of flags, removing the field makes sense. > return ret; > } > > diff --git a/refs.h b/refs.h > index efa182c6a14..0faf3bc0422 100644 > --- a/refs.h > +++ b/refs.h > @@ -794,6 +794,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 not used, 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 > > -- > 2.50.1.465.gcb3da1c9e6.dirty > >