This patch series rewrites some parts of interactive rebase from shell to C: - append_todo_help(). The C version covers a bit more than the shell version. - The edit-todo functionnality. - The reflog operations. The v1 of this series is an aggregate made by Junio of my patch series about append_todo_help() (v3), edit-todo (v2) and reflog (v5), and can be found in the branch `ag/rebase-i-in-c`. This branch is based on master (as of 2018-07-02). Changes since v1: - Introducing rebase-interactive.c to contain functions necessary for interactive rebase. - Show an error message when append_todo_help() fails to edit the todo list. - Renaming enumeration check_level and its values to avoid namespace pollution. - Moving append_todo_help() and edit_todo() from sequencer.c to interactive-rebase.c. Alban Gruin (7): sequencer: make two functions and an enum from sequencer.c public rebase--interactive: rewrite append_todo_help() in C editor: add a function to launch the sequence editor rebase-interactive: rewrite the edit-todo functionality in C sequencer: add a new function to silence a command, except if it fails. rebase -i: rewrite setup_reflog_action() in C rebase -i: rewrite checkout_onto() in C Makefile | 1 + builtin/rebase--helper.c | 24 +++++++- cache.h | 1 + editor.c | 27 ++++++++- git-rebase--interactive.sh | 100 +++---------------------------- rebase-interactive.c | 99 ++++++++++++++++++++++++++++++ rebase-interactive.h | 7 +++ sequencer.c | 120 +++++++++++++++++++++++++------------ sequencer.h | 14 +++++ strbuf.h | 2 + 10 files changed, 260 insertions(+), 135 deletions(-) create mode 100644 rebase-interactive.c create mode 100644 rebase-interactive.h -- 2.18.0