On Mon, Dec 9, 2024 at 12:11 PM Karthik Nayak <karthik.188@xxxxxxxxx> wrote: > > Unless the `REF_SKIP_REFNAME_VERIFICATION` flag is set for an update, > the refname of the update is verified for: > > - Ensuring it is not a pseudoref. > - Checking the refname format. > > These checks are also be needed in a following commit where the function s/are also be needed/will also be needed/ > to add reflog updates to the transaction is introduced. Extract the code > out into a new static function. > > Signed-off-by: Karthik Nayak <karthik.188@xxxxxxxxx> > --- > refs.c | 43 ++++++++++++++++++++++++++++--------------- > 1 file changed, 28 insertions(+), 15 deletions(-) > > diff --git a/refs.c b/refs.c > index f003e51c6bf5229bfbce8ce61ffad7cdba0572e0..732c236a3fd0cf324cc172b48d3d54f6dbadf4a4 100644 > --- a/refs.c > +++ b/refs.c > @@ -1196,6 +1196,29 @@ struct ref_update *ref_transaction_add_update( > return update; > } > > +static int transaction_refname_verification(const char *refname, > + const struct object_id *new_oid, > + unsigned int flags, > + struct strbuf *err) We have a number of functions named 'xxx_valid()' or 'xxx_ok()' while I couldn't find any 'yyy_verification()' function, so it might be better to name it 'transaction_refname_valid()' or maybe 'transaction_refname_ok()'. Also I think it should probably return a bool so 1 if the refname is valid and 0 otherwise, unless we have plans in the future to follow different code paths depending on the different ways it is not valid. > + ret = transaction_refname_verification(refname, new_oid, flags, err); > + if (ret) > + return ret; Then the above could be just: if (!transaction_refname_valid(refname, new_oid, flags, err)) return -1;