Thread (3 messages) 3 messages, 2 authors, 2017-04-27

Re: [PATCH] rebase -i: reread the todo list if `exec` touched it

From: Johannes Schindelin <hidden>
Date: 2017-04-27 12:43:51

Hi Steve,

On Wed, 26 Apr 2017, Steve Hicks wrote:
On Wed, Apr 26, 2017 at 12:17 PM, Johannes Schindelin
[off-list ref] wrote:
quoted
From: Stephen Hicks <redacted>

In the scripted version of the interactive rebase, there was no
internal representation of the todo list; it was re-read before every
command.  That allowed the hack that an `exec` command could append
(or even completely rewrite) the todo list.

This hack was broken by the partial conversion of the interactive
rebase to C, and this patch reinstates it.

We also add a small test to verify that this fix does not regress in
the future.
For context on this "hack", I have a script [1] that allows passing
multiple branches at once (or all branches beneath a given root).  It
rewrites the todo file with some extra operations, like "branch",
"push", and "pop", allows editing the modified todo, and then rewrites
back to exec's.
For what it's worth, I used a slightly different approach in the Git
garden shears [*1*] (essentially, `git rebase -i -p` Done Right): I
override the GIT_SEQUENCE_EDITOR to call the script in a specific mode
that rewrites the todo and then launches the editor as per `git var
GIT_EDITOR`.

Ciao,
Johannes

Footnote *1*:
https://github.com/git-for-windows/build-extra/blob/master/shears.sh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help