This patch series rewrites the reflog operations from shell to C. This is part of the effort to rewrite interactive rebase in C. The first commit is dedicated to creating a function to silence a command, as the sequencer will do in several places with these patches. This branch is based on ag/rebase-i-rewrite-todo, and does not conflict with pu (as of 2018-06-25). Changes since v3: - Removing a comment from run_command_silent_on_success() - Changing the order of setup_reflog_action() and checkout_onto() rewrites in the series - Renaming checkout_onto() to detach_onto() - Renaming checkout_base_commit() (rewrite of setup_reflog_action()) to checkout_onto() - Using the `else` keyword to call run_command_silent_on_success() or run_command() in run_git_commit() and run_git_checkout(). Alban Gruin (3): sequencer: extract a function to silence a command, except if it fails rebase -i: rewrite checkout_onto() in C rebase -i: rewrite setup_reflog_action() in C builtin/rebase--helper.c | 13 ++++- git-rebase--interactive.sh | 28 ++-------- sequencer.c | 101 +++++++++++++++++++++++++++---------- sequencer.h | 6 +++ 4 files changed, 97 insertions(+), 51 deletions(-) -- 2.18.0