This is a preparatory series for the separately posted 'rebase --rewind' patch, but I think it has value in itself. Oswald Buddenhagen (8): rebase: simplify code related to imply_merge() rebase: move parse_opt_keep_empty() down sequencer: pass around rebase action explicitly sequencer: create enum for edit_todo_list() return value rebase: preserve interactive todo file on checkout failure sequencer: simplify allocation of result array in todo_list_rearrange_squash() sequencer: pass `onto` to complete_action() as object-id rebase: improve resumption from incorrect initial todo list builtin/rebase.c | 63 +++++++-------- builtin/revert.c | 3 +- rebase-interactive.c | 36 ++++----- rebase-interactive.h | 27 ++++++- sequencer.c | 139 +++++++++++++++++++--------------- sequencer.h | 15 ++-- t/t3404-rebase-interactive.sh | 34 ++++++++- 7 files changed, 196 insertions(+), 121 deletions(-) -- 2.40.0.152.g15d061e6df