Re: Feature request: rebase -i inside of rebase -i
- From
- George Spelvin <lkml@sdf.org>
- Date
- Mar 30, 2020, 18:18 UTC
- Message-ID
- <20200330181812.GB9199@SDF.ORG>
- In-Reply-To
- <0eef4721-1646-48f2-1102-71159d06b049@iee.email>
On Mon, Mar 30, 2020 at 03:01:28PM +0100, Philip Oakley wrote:
Show 23 quoted lines
> Perhaps we can go the other way on this one. > > I'd agree that attempting to nest (misunderstood mistaken) rebases is > digging a too deep hole that we'd not get out of. However we do have > other rebases available, specifically the "rebasing merges" > https://git-scm.com/docs/git-rebase#_rebasing_merges. > > I know rebasing merges is way down the man page, but it has all the > power and flexibility needed _if_ we can step across from the mistaken > rebase step (we are at the command prompt aren't we?) into the rebasing > merge mode. > > This will require a little bit of expansion of the insn (instruction) > sheet so as to _include commented lines of the rebase steps completed_ > so far, along with the labels, resets, merges, etc, so that the user can > _see_ where they they are within their failed progress (along with a > title line telling them their initial command and that they are now on a > rebasing merge insn;-). > > From there they can update the insn to reset back to the correct point, > redo the correct picks, and then get back to their remaining rebase steps. > > It's a thought anyway.
I'm confused. *How* does --rebase-merge mode help? You're saying "hey, if we use this, it solves the issue" but I don't see how to pound this nail with that screwdriver.
I don't see how creating a branching history helps, and I don't see how to use the reset/label/merge commands to do anything but create a branching history.
I suppose it is possible to use the "reset" command in isolation to describe the jump to a new base. So you could have a history of:
# Command already executed: # reset base # pick A # pick B # pick C # label rebase-1 User asked for a nested rebase # reset A'
# Commands pending: pick B' pick C' # rebase-2 complete, resume rebase-1 pick D pick E
Is that what you were getting at?
I was thinking of it being implicit, but it might be nice for the initial "reset" in each rebase to be explicit, *and not yet executed during the initial todo edit*.
That makes it really clear that deleting the todo list entirely results in no change to the tree.