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.