rebase -i: remove unnecessary state rebase-root
Before calling 'git cherry-pick', interactive rebase currently checks if we are rebasing from root (if --root was passed). If we are, the '--ff' flag to 'git cherry-pick' is omitted. However, according to the documentation for 'git cherry-pick --ff', "If the current HEAD is the same as the parent of the cherry-picked commit, then a fast forward to this commit will be performed.". This should never be the case when rebasing from root, so it should not matter whether --ff is passed, so simplify the code by removing the condition. Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
c6f7de5455
commit
c71f8f3d50
@ -168,11 +168,6 @@ pick_one () {
|
|||||||
output git rev-parse --verify $sha1 || die "Invalid commit name: $sha1"
|
output git rev-parse --verify $sha1 || die "Invalid commit name: $sha1"
|
||||||
test -d "$rewritten" &&
|
test -d "$rewritten" &&
|
||||||
pick_one_preserving_merges "$@" && return
|
pick_one_preserving_merges "$@" && return
|
||||||
if test -n "$rebase_root"
|
|
||||||
then
|
|
||||||
output git cherry-pick "$@"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
output git cherry-pick $ff "$@"
|
output git cherry-pick $ff "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -582,10 +577,6 @@ skip_unnecessary_picks () {
|
|||||||
die "Could not skip unnecessary pick commands"
|
die "Could not skip unnecessary pick commands"
|
||||||
}
|
}
|
||||||
|
|
||||||
get_saved_options () {
|
|
||||||
test -f "$state_dir"/rebase-root && rebase_root=t
|
|
||||||
}
|
|
||||||
|
|
||||||
# Rearrange the todo list that has both "pick sha1 msg" and
|
# Rearrange the todo list that has both "pick sha1 msg" and
|
||||||
# "pick sha1 fixup!/squash! msg" appears in it so that the latter
|
# "pick sha1 fixup!/squash! msg" appears in it so that the latter
|
||||||
# comes immediately after the former, and change "pick" to
|
# comes immediately after the former, and change "pick" to
|
||||||
@ -649,8 +640,6 @@ rearrange_squash () {
|
|||||||
|
|
||||||
case "$action" in
|
case "$action" in
|
||||||
continue)
|
continue)
|
||||||
get_saved_options
|
|
||||||
|
|
||||||
# do we have anything to commit?
|
# do we have anything to commit?
|
||||||
if git diff-index --cached --quiet --ignore-submodules HEAD --
|
if git diff-index --cached --quiet --ignore-submodules HEAD --
|
||||||
then
|
then
|
||||||
@ -681,8 +670,6 @@ first and then run 'git rebase --continue' again."
|
|||||||
do_rest
|
do_rest
|
||||||
;;
|
;;
|
||||||
skip)
|
skip)
|
||||||
get_saved_options
|
|
||||||
|
|
||||||
git rerere clear
|
git rerere clear
|
||||||
|
|
||||||
do_rest
|
do_rest
|
||||||
@ -705,12 +692,6 @@ mkdir "$state_dir" || die "Could not create temporary $state_dir"
|
|||||||
|
|
||||||
: > "$state_dir"/interactive || die "Could not mark as interactive"
|
: > "$state_dir"/interactive || die "Could not mark as interactive"
|
||||||
write_basic_state
|
write_basic_state
|
||||||
case "$rebase_root" in
|
|
||||||
'')
|
|
||||||
rm -f "$state_dir"/rebase-root ;;
|
|
||||||
*)
|
|
||||||
: >"$state_dir"/rebase-root ;;
|
|
||||||
esac
|
|
||||||
if test t = "$preserve_merges"
|
if test t = "$preserve_merges"
|
||||||
then
|
then
|
||||||
if test -z "$rebase_root"
|
if test -z "$rebase_root"
|
||||||
|
Loading…
Reference in New Issue
Block a user