git-prompt: change the prompt for interactive-based rebases
In the past, we had different prompts for different types of rebases:
REBASE: for am-based rebases
REBASE-m: for merge-based rebases
REBASE-i: for interactive-based rebases
It's not clear why this distinction was necessary or helpful; when the
prompt was added in commit e75201963f
("Improve bash prompt to detect
various states like an unfinished merge", 2007-09-30), it simply added
these three different types. Perhaps there was a useful purpose back
then, but there have been some changes:
* The merge backend was deleted after being implemented on top of the
interactive backend, causing the prompt for merge-based rebases to
change from REBASE-m to REBASE-i.
* The interactive backend is used for multiple different types of
non-interactive rebases, so the "-i" part of the prompt doesn't
really mean what it used to.
* Rebase backends have gained more abilities and have a great deal of
overlap, sometimes making it hard to distinguish them.
* Behavioral differences between the backends have also been ironed
out.
* We want to change the default backend from am to interactive, which
means people would get "REBASE-i" by default if we didn't change
the prompt, and only if they specified --am or --whitespace or -C
would they get the "REBASE" prompt.
* In the future, we plan to have "--whitespace", "-C", and even "--am"
run the interactive backend once it can handle everything the
am-backend can.
For all these reasons, make the prompt for any type of rebase just be
"REBASE".
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
52eb738d6b
commit
6d04ce75c4
@ -429,11 +429,7 @@ __git_ps1 ()
|
|||||||
__git_eread "$g/rebase-merge/head-name" b
|
__git_eread "$g/rebase-merge/head-name" b
|
||||||
__git_eread "$g/rebase-merge/msgnum" step
|
__git_eread "$g/rebase-merge/msgnum" step
|
||||||
__git_eread "$g/rebase-merge/end" total
|
__git_eread "$g/rebase-merge/end" total
|
||||||
if [ -f "$g/rebase-merge/interactive" ]; then
|
r="|REBASE"
|
||||||
r="|REBASE-i"
|
|
||||||
else
|
|
||||||
r="|REBASE-m"
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
if [ -d "$g/rebase-apply" ]; then
|
if [ -d "$g/rebase-apply" ]; then
|
||||||
__git_eread "$g/rebase-apply/next" step
|
__git_eread "$g/rebase-apply/next" step
|
||||||
|
@ -163,7 +163,7 @@ test_expect_success 'prompt - inside bare repository' '
|
|||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'prompt - interactive rebase' '
|
test_expect_success 'prompt - interactive rebase' '
|
||||||
printf " (b1|REBASE-i 2/3)" >expected &&
|
printf " (b1|REBASE 2/3)" >expected &&
|
||||||
write_script fake_editor.sh <<-\EOF &&
|
write_script fake_editor.sh <<-\EOF &&
|
||||||
echo "exec echo" >"$1"
|
echo "exec echo" >"$1"
|
||||||
echo "edit $(git log -1 --format="%h")" >>"$1"
|
echo "edit $(git log -1 --format="%h")" >>"$1"
|
||||||
@ -180,7 +180,7 @@ test_expect_success 'prompt - interactive rebase' '
|
|||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'prompt - rebase merge' '
|
test_expect_success 'prompt - rebase merge' '
|
||||||
printf " (b2|REBASE-i 1/3)" >expected &&
|
printf " (b2|REBASE 1/3)" >expected &&
|
||||||
git checkout b2 &&
|
git checkout b2 &&
|
||||||
test_when_finished "git checkout master" &&
|
test_when_finished "git checkout master" &&
|
||||||
test_must_fail git rebase --merge b1 b2 &&
|
test_must_fail git rebase --merge b1 b2 &&
|
||||||
@ -189,11 +189,11 @@ test_expect_success 'prompt - rebase merge' '
|
|||||||
test_cmp expected "$actual"
|
test_cmp expected "$actual"
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'prompt - rebase' '
|
test_expect_success 'prompt - rebase am' '
|
||||||
printf " (b2|REBASE 1/3)" >expected &&
|
printf " (b2|REBASE 1/3)" >expected &&
|
||||||
git checkout b2 &&
|
git checkout b2 &&
|
||||||
test_when_finished "git checkout master" &&
|
test_when_finished "git checkout master" &&
|
||||||
test_must_fail git rebase b1 b2 &&
|
test_must_fail git rebase --am b1 b2 &&
|
||||||
test_when_finished "git rebase --abort" &&
|
test_when_finished "git rebase --abort" &&
|
||||||
__git_ps1 >"$actual" &&
|
__git_ps1 >"$actual" &&
|
||||||
test_cmp expected "$actual"
|
test_cmp expected "$actual"
|
||||||
|
Loading…
Reference in New Issue
Block a user