Hi Phillip, Le 19/01/2020 à 17:28, Phillip Wood a écrit : > Hi Alban > > On 11/01/2020 17:39, Alban Gruin wrote: >> @@ -121,10 +125,26 @@ int edit_todo_list(struct repository *r, struct todo_list *todo_list, >> if (initial && new_todo->buf.len == 0) >> return -3; >> >> - /* For the initial edit, the todo list gets parsed in >> - * complete_action(). */ >> - if (!initial) >> - return todo_list_parse_insn_buffer(r, new_todo->buf.buf, new_todo); >> + if (todo_list_parse_insn_buffer(r, new_todo->buf.buf, new_todo)) { >> + fprintf(stderr, _(edit_todo_list_advice)); >> + return -4; >> + } >> + >> + if (incorrect) { >> + if (todo_list_check_against_backup(r, new_todo)) { >> + write_file(rebase_path_dropped(), ""); >> + return -4; >> + } >> + >> + if (incorrect > 0) >> + unlink(rebase_path_dropped()); >> + } else if (todo_list_check(todo_list, new_todo)) { >> + write_file(rebase_path_dropped(), ""); > > We also need to create a backup from todo_list otherwise we'll be using > a stale backup file for the in the clause above when the user edits the > todo list to fix it. This test fails > > test_expect_success 'rebase.missingCommitsCheck = error when editing for a second time' ' > test_config rebase.missingCommitsCheck error && > ( > set_fake_editor && > FAKE_LINES="1 break 2 3" git rebase -i A D && > cp .git/rebase-merge/git-rebase-todo todo && > test_must_fail env FAKE_LINES=2 git rebase --edit-todo && > GIT_SEQUENCE_EDITOR="cp todo" git rebase --edit-todo && > git rebase --continue > ) > ' > The second edit complains that commit B is missing even though we have > already pick it. This is because we're using a stale backup file. > Good catch. Fortunately this time, the fix is trivial, and the reroll will come very soon. > Sorry to be the bearer of bad tidings > No worries, this series wouldn't get very far without your feedback. > Phillip > >> + return -4; >> + } else { >> + todo_list_write_to_file(r, todo_list, todo_backup, shortrevisions, shortonto, >> + -1, flags | TODO_LIST_SHORTEN_IDS | TODO_LIST_APPEND_TODO_HELP); >> + } >> >> return 0; >> } Thank you, Alban