diff options
author | Alban Gruin <alban.gruin@gmail.com> | 2018-08-10 19:51:34 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-08-10 21:56:22 +0300 |
commit | 4df66c40b08931eb224964f12decbb0f660cf932 (patch) | |
tree | d50cbac660ed4085f7477a56beb248abfdc90221 /git-rebase--interactive.sh | |
parent | 2c58483a5983d1313f674e2ba32b3bac24df6911 (diff) |
rebase -i: rewrite checkout_onto() in C
This rewrites checkout_onto() from shell to C.
A new command (“checkout-onto”) is added to rebase--helper.c. The shell
version is then stripped.
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 | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 77e972bb6c..b68f108f28 100644 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -28,17 +28,6 @@ case "$comment_char" in ;; esac -orig_reflog_action="$GIT_REFLOG_ACTION" - -comment_for_reflog () { - case "$orig_reflog_action" in - ''|rebase*) - GIT_REFLOG_ACTION="rebase -i ($1)" - export GIT_REFLOG_ACTION - ;; - esac -} - die_abort () { apply_autostash rm -rf "$state_dir" @@ -70,14 +59,6 @@ collapse_todo_ids() { git rebase--helper --shorten-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 -} - get_missing_commit_check_level () { check_level=$(git config --get rebase.missingCommitsCheck) check_level=${check_level:-ignore} @@ -176,7 +157,8 @@ EOF git rebase--helper --check-todo-list || { ret=$? - checkout_onto + git rebase--helper --checkout-onto "$onto_name" "$onto" \ + "$orig_head" ${verbose:+--verbose} exit $ret } @@ -186,7 +168,8 @@ EOF onto="$(git rebase--helper --skip-unnecessary-picks)" || die "Could not skip unnecessary pick commands" - checkout_onto + git rebase--helper --checkout-onto "$onto_name" "$onto" "$orig_head" \ + ${verbose:+--verbose} require_clean_work_tree "rebase" exec git rebase--helper ${force_rebase:+--no-ff} $allow_empty_message \ --continue |