diff options
| author | Alban Gruin <alban.gruin@gmail.com> | 2018-08-10 18:51:33 +0200 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2018-08-10 11:56:22 -0700 |
| commit | 2c58483a5983d1313f674e2ba32b3bac24df6911 (patch) | |
| tree | e0e3c8cf5baa90830e67db69b9d09593ab9e9fe5 /builtin/rebase--helper.c | |
| parent | 34bec2c458474bdc05ced34d6789ee6c9fb7f051 (diff) | |
rebase -i: rewrite setup_reflog_action() in C
This rewrites (the misnamed) setup_reflog_action() from shell to C. The
new version is called prepare_branch_to_be_rebased().
A new command is added to rebase--helper.c, “checkout-base”, as well as
a new flag, “verbose”, to avoid silencing the output of the checkout
operation called by checkout_base_commit().
The function `run_git_checkout()` will also be used in the next commit,
therefore its code is not part of `checkout_base_commit()`.
The shell version is then stripped in favour of a call to the helper.
As $GIT_REFLOG_ACTION is no longer set at the first call of
checkout_onto(), a call to comment_for_reflog() is added at the
beginning of this function.
Signed-off-by: Alban Gruin <alban.gruin@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/rebase--helper.c')
| -rw-r--r-- | builtin/rebase--helper.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/builtin/rebase--helper.c b/builtin/rebase--helper.c index 731a64971d..0e76dadba6 100644 --- a/builtin/rebase--helper.c +++ b/builtin/rebase--helper.c @@ -18,7 +18,7 @@ int cmd_rebase__helper(int argc, const char **argv, const char *prefix) enum { CONTINUE = 1, ABORT, MAKE_SCRIPT, SHORTEN_OIDS, EXPAND_OIDS, CHECK_TODO_LIST, SKIP_UNNECESSARY_PICKS, REARRANGE_SQUASH, - ADD_EXEC, APPEND_TODO_HELP, EDIT_TODO + ADD_EXEC, APPEND_TODO_HELP, EDIT_TODO, PREPARE_BRANCH } command = 0; struct option options[] = { OPT_BOOL(0, "ff", &opts.allow_ff, N_("allow fast-forward")), @@ -28,6 +28,7 @@ int cmd_rebase__helper(int argc, const char **argv, const char *prefix) OPT_BOOL(0, "rebase-merges", &rebase_merges, N_("rebase merge commits")), OPT_BOOL(0, "rebase-cousins", &rebase_cousins, N_("keep original branch points of cousins")), + OPT__VERBOSE(&opts.verbose, N_("be verbose")), OPT_CMDMODE(0, "continue", &command, N_("continue rebase"), CONTINUE), OPT_CMDMODE(0, "abort", &command, N_("abort rebase"), @@ -51,6 +52,8 @@ int cmd_rebase__helper(int argc, const char **argv, const char *prefix) OPT_CMDMODE(0, "edit-todo", &command, N_("edit the todo list during an interactive rebase"), EDIT_TODO), + OPT_CMDMODE(0, "prepare-branch", &command, + N_("prepare the branch to be rebased"), PREPARE_BRANCH), OPT_END() }; @@ -94,5 +97,7 @@ int cmd_rebase__helper(int argc, const char **argv, const char *prefix) return !!append_todo_help(0, keep_empty); if (command == EDIT_TODO && argc == 1) return !!edit_todo_list(flags); + if (command == PREPARE_BRANCH && argc == 2) + return !!prepare_branch_to_be_rebased(&opts, argv[1]); usage_with_options(builtin_rebase_helper_usage, options); } |
