rebase -i: reread the todo list if `exec` touched it
authorStephen Hicks <sdh@google.com>
Wed, 26 Apr 2017 19:17:40 +0000 (21:17 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 27 Apr 2017 01:56:26 +0000 (10:56 +0900)
commit54fd3243daec7d59394f25846450d83c0012e57c
treef5dac03405fbe120d5a1fcad876fe8fd60a00a6e
parente2cb6ab84c94f147f1259260961513b40c36108a
rebase -i: reread the todo list if `exec` touched it

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.

Signed-off-by: Stephen Hicks <sdh@google.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
sequencer.c
t/t3429-rebase-edit-todo.sh [new file with mode: 0755]