Thanks for the feedback on V1. I have decided to split this series so I'm just posting a re-roll of the first two patches here. The only change is to reword the commit message of the first patch as suggested by Eric and Dscho Cover letter for V1: Fix the re-reading of the todo list after an exec or reword command and stop forking "git checkout" when checking out "onto" Phillip Wood (2): sequencer.c: factor out a function rebase: fix todo-list rereading sequencer.c | 47 +++++++++++++++++++++++++++-------------------- sequencer.h | 1 - 2 files changed, 27 insertions(+), 21 deletions(-) base-commit: 66262451ec94d30ac4b80eb3123549cf7a788afd Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1034%2Fphillipwood%2Fwip%2Frebase-reread-todo-v2 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1034/phillipwood/wip/rebase-reread-todo-v2 Pull-Request: https://github.com/gitgitgadget/git/pull/1034 Range-diff vs v1: 1: 53cde4825b4 ! 1: 98ebefc140e sequencer.c: factor out a function @@ Commit message sequencer.c: factor out a function This code is heavily indented and obscures the high level logic within - the loop. Lets move it to its own function before modifying it in the - next commit. + the loop. Let's move it to its own function before modifying it in the + next commit. Note that there is a subtle change in behavior if the + todo list cannot be reread. Previously todo_list->current was + incremented before returning, now it returns immediately. Signed-off-by: Phillip Wood <phillip.wood@xxxxxxxxxxxxx> 2: 3b17a4e3d3f = 2: 0d89c506192 rebase: fix todo-list rereading 3: 614555fc10f < -: ----------- reset_head(): mark oid parameter as const 4: 39ad40c9297 < -: ----------- rebase -i: don't fork git checkout 5: c8a92d4242b < -: ----------- rebase: remove unused parameter -- gitgitgadget