From: Junio C Hamano Date: Tue, 30 Jun 2026 19:57:32 GMT Subject: Re: [PATCH 00/11] sequencer: do not record dropped commits as rewritten Message-ID: In-Reply-To: Phillip Wood writes: > On 19/06/2026 11:13, Phillip Wood wrote: >> I'm happy to take this forward and try and fix at least some of the >> other bugs I've listed above. Uwe - if I don't cc you on some patches >> within the next couple of weeks please feel free to send a reminder. > > Here is the first batch that fixes the same problem as Uwe's patch. I've > taken a slightly different approach that uses the return value from > do_pick_commit() to signal that a commit was dropped rather than > adding another function argument. That involves a number of preparatory > patches, but they are hopefully reasonably small and easy to follow. > > If a commit gets dropped because its changes are already upstream > then we should not record it as rewritten. As well as confusing any > post-rewrite hooks this means we end up copying the notes from the > dropped commit to the commit that was picked immediately before the > one that was dropped. > > This series is structured as follows: > > Patch 1 restores some test coverage that was lost when the default > rebase backend was changed. > > Patch 2 moves a function so it can be called without a forward > declaration in Patch 11. > > Patches 3 & 4 fix the return value of do_pick_commit() when an external > command fails (this is in preparation for patch 10). > > Patches 5-9 try and simplify the control flow in pick_one_commit() > in preparation for patch 10. > > Patch 10 changes the return type of do_pick_commit() to an enum. > > Patch 11 adds a new member to the enum from patch 10 for commits that > are dropped when they become empty and uses that to stop them from > being recorded as rewritten. > > Base-Commit: 6c3d7b73556db708feb3b16232fab1efc4353428 > Published-As: https://github.com/phillipwood/git/releases/tag/pw%2Frebase-drop-notes-with-commit%2Fv1 > View-Changes-At: https://github.com/phillipwood/git/compare/6c3d7b735...26551f268 > Fetch-It-Via: git fetch https://github.com/phillipwood/git pw/rebase-drop-notes-with-commit/v1 Thanks. A tangent (I Cc'ed Konstantin for this), but $ b4 am -o- '' >b4am.mbx failed to produce a usable mailbox. It somehow did not think [2/11] existed. I manually examined the References and In-Reply-To headers of that particular message and compared them with those from other messages but did not find anything suspicious X-<. I have a bunch of typofixes queued on top of these 11 patches (made with "git commit --fixup reword:"); please double check when you reroll after seeing more substantial reviews than mere typofixes, possibly from others. Thanks. Here is the transcript of failed b4 am invocation. ---- >8 ---- Looking up https://lore.kernel.org/all/cover.1782833268.git.phillip.wood@dunelm.org.uk/ Grabbing thread from lore.kernel.org/all/cover.1782833268.git.phillip.wood@dunelm.org.uk/t.mbox.gz Analyzing 17 messages in the thread WARNING: duplicate messages found at index 1 Subject 1: sequencer: Skip copying notes for commits that disappear during rebase Subject 2: t3400: restore coverage for note copying with apply backend 2 is not a reply... assume additional patch Looking for additional code-review trailers on lore.kernel.org Analyzing 0 code-review messages Checking attestation on all messages, may take a moment... --- ✗ [PATCH] sequencer: Skip copying notes for commits that disappear during rebase ✗ No key: openpgp/u.kleine-koenig@baylibre.com ✗ BADSIG: DKIM/baylibre.com ✓ [PATCH 1/11] t3400: restore coverage for note copying with apply backend ✓ Signed: DKIM/gmail.com ✓ [PATCH 3/11] sequencer: be more careful with external merge ✓ Signed: DKIM/gmail.com ✓ [PATCH 4/11] sequencer: never reschedule on failed commit ✓ Signed: DKIM/gmail.com ✓ [PATCH 5/11] sequencer: remove unnecessary "or" in pick_one_commit() ✓ Signed: DKIM/gmail.com ✓ [PATCH 6/11] sequencer: simplify handing of fixup with conflicts ✓ Signed: DKIM/gmail.com ✓ [PATCH 7/11] sequencer: remove unnecessary condition in pick_one_commit() ✓ Signed: DKIM/gmail.com ✓ [PATCH 8/11] sequencer: simplify pick_one_commit() ✓ Signed: DKIM/gmail.com ✓ [PATCH 9/11] sequencer: return early from pick_one_commit() on success ✓ Signed: DKIM/gmail.com ✓ [PATCH 10/11] sequencer: use an enum to represent result of picking a commit ✓ Signed: DKIM/gmail.com ✓ [PATCH 11/11] sequencer: do not record dropped commits as rewritten ✓ Signed: DKIM/gmail.com ERROR: missing [12/2]! --- Total patches: 11 --- WARNING: Thread incomplete! Link: https://patch.msgid.link/cover.1782833268.git.phillip.wood@dunelm.org.uk :