Thread (60 messages) 60 messages, 5 authors, 4h ago

Re: [PATCH 00/11] sequencer: do not record dropped commits as rewritten

From: Uwe Kleine-König <hidden>
Date: 2026-07-01 09:38:28

Hello Phillip,

thanks a lot for addressing this, very appreciated!

On Tue, Jun 30, 2026 at 04:28:50PM +0100, Phillip Wood wrote:
On 19/06/2026 11:13, Phillip Wood wrote:
quoted
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 <redacted>
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

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help