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

Re: [PATCH v2 0/8] Debug merge-recursive.[ch]

From
Elijah Newren <newren@gmail.com>
Date
Apr 7, 2025, 22:23 UTC
Message-ID
<CABPp-BGN2JCt9BJ0wQqtgNLhD6Qf19PMzYWpjgpJ6O2OcyRCXg@mail.gmail.com>
In-Reply-To
<xmqqiknfn36y.fsf@gitster.g>
On Mon, Apr 7, 2025 at 1:10 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 8 quoted lines
>
> "Elijah Newren via GitGitGadget" <gitgitgadget@gmail.com> writes:
>
> > This series does some preparation, then moves the code shared between
> > merge-recursive and merge-ort from the former to the latter, and then debugs
> > the remainder of merge-recursive.[ch].
>
> Help unconfusing me.

It was an attempt at humor, which importantly relied on the sentence you stripped out immediately before this part you quoted, namely:

> > As a wise man once told me, "Deleted code is debugged code!"

With this sentence as context, "debug the code" was a funny way of saying "delete the code". Because if it's deleted, we are no longer affected by any bugs contained within it (and that'd be true for both known bugs and latent ones we hadn't triggered yet).

Show 14 quoted lines
> I've already named the topic with "debug" in its name while queuing
> the original iteration of this series, as I was on vacation and did
> not want to spend more than minimum braincycles on naming, but now I
> am back, I sense that the use of the word, and the proposed log
> message for 6/8, are overly suboptimal.  If you are referring to
> fixing remaining bugs, "Debug the remainder of merge-recursive.[ch]"
> is not how we usually describe our fixes.
>
> I suspect that the overall sentiment behind this series is ...
>
>         Such and such bugs existed in the older backend, but now the
>         newer backend is used when the older one is asked, and the
>         newer backend does not share these bugs, we can simply
>         remove the buggy code specific to the older backend.
I'd say the sentiment is more:
   merge-ort was always meant to be a replacement for merge-recursive
   (and has various advantages -- worktree-less and index-less
   operation, faster, fixes some bugs); let's convert the rest of the
   callers over and then clean up by deleting merge-recursive (as
   well as removing the extra test scaffolding added long ago to aid
   in the conversion).

In other words the bug fixes, while real, were not the thrust of the story. I showed a handful of people my existing commit message and cover letter, all of whom found it a humorous way of stating that we're finally replacing merge-recursive. But, since this intent wasn't obvious to everyone, I can re-roll with some clarification.

Previous: Junio C HamanoNext: Elijah Newren via GitGitGadget
Message 22 of 31 in “Debug merge-recursive.[ch]”
  1. 0/8 Debug merge-recursive.[ch]Elijah Newren via GitGitGadget, Mar 31, 2025
  2. 1/8 checkout: replace merge_trees() with merge_ort_nonrecursive()Elijah Newren via GitGitGadget, Mar 31, 2025
  3. 2/8 builtin/merge-recursive: switch to using merge_ort_generic()Elijah Newren via GitGitGadget, Mar 31, 2025
  4. 3/8 merge-ort: enable diff-algorithms other than histogramElijah Newren via GitGitGadget, Mar 31, 2025
  5. 4/8 sequencer: switch non-recursive merges over to ortElijah Newren via GitGitGadget, Mar 31, 2025
  6. 5/8 merge, sequencer: switch recursive merges over to ortElijah Newren via GitGitGadget, Mar 31, 2025
  7. 7/8 tests: remove GIT_TEST_MERGE_ALGORITHM and test_expect_merge_algorithmElijah Newren via GitGitGadget, Mar 31, 2025
  8. Eric SunshineMar 31, 2025
  9. Elijah NewrenMar 31, 2025
  10. 6/8 merge-recursive.[ch]: thoroughly debug theseElijah Newren via GitGitGadget, Mar 31, 2025
  11. 8/8 builtin/{merge,rebase,revert}: remove GIT_TEST_MERGE_ALGORITHMElijah Newren via GitGitGadget, Mar 31, 2025
  12. 0/8 Debug merge-recursive.[ch]Elijah Newren via GitGitGadget, Apr 5, 2025
  13. 1/8 checkout: replace merge_trees() with merge_ort_nonrecursive()Elijah Newren via GitGitGadget, Apr 5, 2025
  14. 2/8 builtin/merge-recursive: switch to using merge_ort_generic()Elijah Newren via GitGitGadget, Apr 5, 2025
  15. 3/8 merge-ort: enable diff-algorithms other than histogramElijah Newren via GitGitGadget, Apr 5, 2025
  16. 4/8 sequencer: switch non-recursive merges over to ortElijah Newren via GitGitGadget, Apr 5, 2025
  17. 5/8 merge, sequencer: switch recursive merges over to ortElijah Newren via GitGitGadget, Apr 5, 2025
  18. 8/8 builtin/{merge,rebase,revert}: remove GIT_TEST_MERGE_ALGORITHMElijah Newren via GitGitGadget, Apr 5, 2025
  19. 7/8 tests: remove GIT_TEST_MERGE_ALGORITHM and test_expect_merge_algorithmElijah Newren via GitGitGadget, Apr 5, 2025
  20. 6/8 merge-recursive.[ch]: thoroughly debug theseElijah Newren via GitGitGadget, Apr 5, 2025
  21. Junio C HamanoApr 7, 2025
  22. Elijah NewrenApr 7, 2025
  23. 0/8 Debug merge-recursive.[ch]Elijah Newren via GitGitGadget, Apr 8, 2025
  24. 1/8 checkout: replace merge_trees() with merge_ort_nonrecursive()Elijah Newren via GitGitGadget, Apr 8, 2025
  25. 2/8 builtin/merge-recursive: switch to using merge_ort_generic()Elijah Newren via GitGitGadget, Apr 8, 2025
  26. 3/8 merge-ort: enable diff-algorithms other than histogramElijah Newren via GitGitGadget, Apr 8, 2025
  27. 4/8 sequencer: switch non-recursive merges over to ortElijah Newren via GitGitGadget, Apr 8, 2025
  28. 5/8 merge, sequencer: switch recursive merges over to ortElijah Newren via GitGitGadget, Apr 8, 2025
  29. 8/8 builtin/{merge,rebase,revert}: remove GIT_TEST_MERGE_ALGORITHMElijah Newren via GitGitGadget, Apr 8, 2025
  30. 7/8 tests: remove GIT_TEST_MERGE_ALGORITHM and test_expect_merge_algorithmElijah Newren via GitGitGadget, Apr 8, 2025
  31. 6/8 merge-recursive.[ch]: thoroughly debug theseElijah Newren via GitGitGadget, Apr 8, 2025

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.