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 /git-rebase--interactive.sh | |
| 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 'git-rebase--interactive.sh')
| -rw-r--r-- | git-rebase--interactive.sh | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 2defe607f4..77e972bb6c 100644 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -72,6 +72,7 @@ collapse_todo_ids() { # Switch to the branch in $into and notify it in the reflog checkout_onto () { + comment_for_reflog start GIT_REFLOG_ACTION="$GIT_REFLOG_ACTION: checkout $onto_name" output git checkout $onto || die_abort "$(gettext "could not detach HEAD")" git update-ref ORIG_HEAD $orig_head @@ -119,19 +120,6 @@ initiate_action () { esac } -setup_reflog_action () { - comment_for_reflog start - - if test ! -z "$switch_to" - then - GIT_REFLOG_ACTION="$GIT_REFLOG_ACTION: checkout $switch_to" - output git checkout "$switch_to" -- || - die "$(eval_gettext "Could not checkout \$switch_to")" - - comment_for_reflog start - fi -} - init_basic_state () { orig_head=$(git rev-parse --verify HEAD) || die "$(gettext "No HEAD?")" mkdir -p "$state_dir" || die "$(eval_gettext "Could not create temporary \$state_dir")" @@ -211,7 +199,7 @@ git_rebase__interactive () { return 0 fi - setup_reflog_action + git rebase--helper --prepare-branch "$switch_to" ${verbose:+--verbose} init_basic_state init_revisions_and_shortrevisions |
