On Tue, Nov 23, 2021 at 9:34 PM Junio C Hamano <gitster@xxxxxxxxx> wrote: > > Han-Wen Nienhuys <hanwen@xxxxxxxxxx> writes: > > > I'm talking about refs/refs-internal.h. It seems you want to add something like > > > > /* The ref backend should add a '\n' relative to the message supplied > > to the delete/symref/update functions. */ > > typedef int for_each_reflog_ent_fn(struct ref_store *ref_store, > > const char *refname, > > each_reflog_ent_fn fn, > > void *cb_data); > > > > ? > > Sorry, I do not follow. Doesn't the ref backend already ensure that > the message is not an incomplete line? If you feed a single > complete line when updating, I do not think the backend should add > any extra LF relative to the given message: But it does, currently. As of commit 523fa69c36744ae6779e38614cb9bfb2be552923 Author: Junio C Hamano <gitster@xxxxxxxxx> .. - We expect that a reflog message consists of a single line. The file format used by the files backend may add a LF after the it is the job of the files ref backend to add a LF, and the input to the ref backend is a string without trailing LF. But the files backend then produces that message with a LF, when reading back the data, eg. $ git --version git version 2.34.0.rc2.393.gf8c9666880-goog $ GIT_TRACE_REFS="1" git branch -m bla blub .. 12:03:59.408705 refs/debug.c:162 rename_ref: refs/heads/bla -> refs/heads/blub "Branch: renamed refs/heads/bla to refs/heads/blub": 0 $ GIT_TRACE_REFS=1 git reflog show refs/heads/blub 12:04:23.277805 refs/debug.c:294 reflog_ent refs/heads/blub (ret 0): cd3e606211bb1cf8bc57f7d76bab98cc17a150bc -> cd3e606211bb1cf8bc57f7d76bab98cc17a150bc, Han-Wen Nienhuys <hanwen@xxxxxxxxxx> 1637751839 "Branch: renamed refs/heads/bla to refs/heads/blub " > I think the rule for "msg" is that: > > a multi-line message, or a message on a single incomplete-line, > are normalized into a single complete line, and callback gets a > single complete line. > That is not how it works today. The files backend verbatimly dumps the message supplied to it. (Maybe it should crash if there is a '\n' in the message). -- Han-Wen Nienhuys - Google Munich I work 80%. Don't expect answers from me on Fridays. -- Google Germany GmbH, Erika-Mann-Strasse 33, 80636 Munich Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Geschäftsführer: Paul Manicle, Halimah DeLaine Prado