Re: [PATCH 00/11] sequencer: do not record dropped commits as rewritten
- From
- Uwe Kleine-König <u.kleine-koenig@baylibre.com>
- Date
- Jul 1, 2026, 09:38 UTC
- Message-ID
- <akSuP-IWiH2wPd6S@monoceros>
- In-Reply-To
- <cover.1782833268.git.phillip.wood@dunelm.org.uk>
Hello Phillip,
thanks a lot for addressing this, very appreciated!
On Tue, Jun 30, 2026 at 04:28:50PM +0100, Phillip Wood wrote:
Show 36 quoted lines
> 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.
With my very little knowledge about git internals, this looks reasonable, and it behaves as I expect in my test case. I installed a local
Tested-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
> Base-Commit: 6c3d7b73556db708feb3b16232fab1efc4353428
BTW, b4 didn't pick this up, for me it says:
Base: not specified
(and I applied it on top of 2.55.0).
Best regards Uwe