Subject: Re: [RFC PATCH] rebase: implement --rewind

From: Oswald Buddenhagen <[email-masked]>
Date: Tue, 28 Mar 2023 18:11:18 +0200

On Tue, Mar 28, 2023 at 04:53:52PM +0200, Johannes Schindelin wrote:
>I do not think that the concept in its
>current form mixes well with being in the middle of a `--rebase-merges`
>run.
>
fundamentally, it shouldn't pose a problem: the already done part leads 
up to a single commit, from which a complete todo with merges up to that 
point can be built again, while the remainder of the pre-existing todo 
should be unfazed by the fact that you're repeatedly messing with 
whatever branch you stopped in.
i *think* i even tried a few simple cases and found the result adequate, 
but i don't remember for sure (it's been a few months since i authored 
the patch).
just give it a shot.

>On the other hand, it might often be good enough to redo only the 
>commits
>between `onto` and `HEAD`, not the complete rebase script that's now in
>`done`. But then it does not strike me so much as "rewinding" but as
>"nesting.
>
according to the terminology i'm using, this still qualifies as a flat 
rewind, only that it limits itself to --first-parent. we'll see whether 
this turns out to be a necessary simplification, but i don't think so.

true nesting would mean that the rewind itself can be aborted, in case 
you change your mind back. adding that as an option on top of what i'm 
doing isn't a hard problem _per se_. you would need to figure out the 
challenges from my OP, though.
also note the reference in the OP; we discussed this here a while ago 
already.