git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/4] refs: trim newline from reflog message

From
Han-Wen Nienhuys <hanwen@google.com>
Date
Nov 24, 2021, 11:17 UTC
Message-ID
<CAFQ2z_Mb+NzQfXfMhdQoPs09p2j1AWRAdXcX3JSznn+H9+T0Bw@mail.gmail.com>
In-Reply-To
<xmqqzgpu7grv.fsf@gitster.g>
On Tue, Nov 23, 2021 at 9:34 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 18 quoted lines
>
> Han-Wen Nienhuys <hanwen@google.com> 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@pobox.com>
  ..
  - 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@google.com> 1637751839 "Branch: renamed refs/heads/bla to refs/heads/blub "

Show 6 quoted lines
> 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
Previous: Junio C HamanoNext: Junio C Hamano
Message 12 of 60 in “Inspect reflog data programmatically in more tests”
  1. 0/4 Inspect reflog data programmatically in more testsHan-Wen Nienhuys via GitGitGadget, Nov 22, 2021
  2. 1/4 show-branch: show reflog messageHan-Wen Nienhuys via GitGitGadget, Nov 22, 2021
  3. Junio C HamanoNov 22, 2021
  4. Bagas SanjayaNov 23, 2021
  5. Elijah NewrenNov 23, 2021
  6. 2/4 refs: trim newline from reflog messageHan-Wen Nienhuys via GitGitGadget, Nov 22, 2021
  7. Junio C HamanoNov 22, 2021
  8. Han-Wen NienhuysNov 23, 2021
  9. Junio C HamanoNov 23, 2021
  10. Han-Wen NienhuysNov 23, 2021
  11. Junio C HamanoNov 23, 2021
  12. Han-Wen NienhuysNov 24, 2021
  13. Junio C HamanoNov 24, 2021
  14. Han-Wen NienhuysNov 24, 2021
  15. Junio C HamanoNov 24, 2021
  16. Han-Wen NienhuysNov 25, 2021
  17. Junio C HamanoNov 29, 2021
  18. Junio C HamanoNov 24, 2021
  19. Han-Wen NienhuysNov 24, 2021
  20. Re* [PATCH 2/4] refs: trim newline from reflog messageJunio C Hamano, Nov 26, 2021
  21. Ævar Arnfjörð BjarmasonNov 28, 2021
  22. Junio C HamanoNov 28, 2021
  23. Re* [PATCH 2/4] refs: trim newline from reflog messageJunio C Hamano, Nov 28, 2021
  24. Ævar Arnfjörð BjarmasonNov 29, 2021
  25. Ævar Arnfjörð BjarmasonNov 23, 2021
  26. Han-Wen NienhuysNov 23, 2021
  27. 3/4 test-ref-store: tweaks to for-each-reflog-ent formatHan-Wen Nienhuys via GitGitGadget, Nov 22, 2021
  28. Junio C HamanoNov 22, 2021
  29. Han-Wen NienhuysNov 23, 2021
  30. Junio C HamanoNov 23, 2021
  31. 4/4 t1400: use test-helper ref-store to inspect reflog contentsHan-Wen Nienhuys via GitGitGadget, Nov 22, 2021
  32. Ævar Arnfjörð BjarmasonNov 22, 2021
  33. Han-Wen NienhuysNov 22, 2021
  34. Junio C HamanoNov 22, 2021
  35. 0/5 Inspect reflog data programmatically in more testsHan-Wen Nienhuys via GitGitGadget, Nov 25, 2021
  36. 3/5 t1405: check for_each_reflog_ent_reverse() more thoroughlyHan-Wen Nienhuys via GitGitGadget, Nov 25, 2021
  37. 5/5 refs/debug: trim trailing LF from reflog messageHan-Wen Nienhuys via GitGitGadget, Nov 25, 2021
  38. Junio C HamanoNov 26, 2021
  39. Han-Wen NienhuysNov 29, 2021
  40. Junio C HamanoNov 29, 2021
  41. Junio C HamanoNov 29, 2021
  42. Han-Wen NienhuysDec 2, 2021
  43. Junio C HamanoDec 2, 2021
  44. Ævar Arnfjörð BjarmasonNov 29, 2021
  45. 1/5 show-branch: show reflog messageHan-Wen Nienhuys via GitGitGadget, Nov 25, 2021
  46. 2/5 test-ref-store: don't add newline to reflog messageHan-Wen Nienhuys via GitGitGadget, Nov 25, 2021
  47. Junio C HamanoNov 26, 2021
  48. 4/5 test-ref-store: tweaks to for-each-reflog-ent formatHan-Wen Nienhuys via GitGitGadget, Nov 25, 2021
  49. Junio C HamanoNov 26, 2021
  50. Ævar Arnfjörð BjarmasonNov 29, 2021
  51. Han-Wen NienhuysNov 29, 2021
  52. Junio C HamanoNov 29, 2021
  53. Ævar Arnfjörð BjarmasonNov 29, 2021
  54. Han-Wen NienhuysDec 2, 2021
  55. 0/5 Inspect reflog data programmatically in more testsHan-Wen Nienhuys via GitGitGadget, Dec 2, 2021
  56. 1/5 show-branch: show reflog messageHan-Wen Nienhuys via GitGitGadget, Dec 2, 2021
  57. 5/5 refs/debug: trim trailing LF from reflog messageHan-Wen Nienhuys via GitGitGadget, Dec 2, 2021
  58. 4/5 test-ref-store: tweaks to for-each-reflog-ent formatHan-Wen Nienhuys via GitGitGadget, Dec 2, 2021
  59. 3/5 t1405: check for_each_reflog_ent_reverse() more thoroughlyHan-Wen Nienhuys via GitGitGadget, Dec 2, 2021
  60. 2/5 test-ref-store: don't add newline to reflog messageHan-Wen Nienhuys via GitGitGadget, Dec 2, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.