Message ID | 94b5a3051d743e8f54c21bc4cd0413f3c0dd05fa.1577127000.git.gitgitgadget@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | rebase: make the default backend configurable | expand |
Hi Elijah, > Subject: contrib: change the prompt for interactive-based rebases I'll also echo Gábor's comments and suggest that you use "git-prompt" for the change area. On Mon, Dec 23, 2019 at 06:49:55PM +0000, Elijah Newren via GitGitGadget wrote: > From: Elijah Newren <newren@gmail.com> > > 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 e75201963f67 ("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> > --- > contrib/completion/git-prompt.sh | 4 ++-- > t/t9903-bash-prompt.sh | 8 ++++---- > 2 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh > index 1d510cd47b..8f8a22ba60 100644 > --- a/contrib/completion/git-prompt.sh > +++ b/contrib/completion/git-prompt.sh > @@ -430,9 +430,9 @@ __git_ps1 () > __git_eread "$g/rebase-merge/msgnum" step > __git_eread "$g/rebase-merge/end" total > if [ -f "$g/rebase-merge/interactive" ]; then > - r="|REBASE-i" > + r="|REBASE" > else > - r="|REBASE-m" > + r="|REBASE" We should just drop the if here since both arms are the same.. Thanks, Denton > fi > else > if [ -d "$g/rebase-apply" ]; then > diff --git a/t/t9903-bash-prompt.sh b/t/t9903-bash-prompt.sh > index 88bc733ad6..7ca35d358d 100755 > --- a/t/t9903-bash-prompt.sh > +++ b/t/t9903-bash-prompt.sh > @@ -163,7 +163,7 @@ test_expect_success 'prompt - inside bare repository' ' > ' > > 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 && > echo "exec echo" >"$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' ' > - printf " (b2|REBASE-i 1/3)" >expected && > + printf " (b2|REBASE 1/3)" >expected && > git checkout b2 && > test_when_finished "git checkout master" && > test_must_fail git rebase --merge b1 b2 && > @@ -189,11 +189,11 @@ test_expect_success 'prompt - rebase merge' ' > test_cmp expected "$actual" > ' > > -test_expect_success 'prompt - rebase' ' > +test_expect_success 'prompt - rebase am' ' > printf " (b2|REBASE 1/3)" >expected && > git checkout b2 && > 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" && > __git_ps1 >"$actual" && > test_cmp expected "$actual" > -- > gitgitgadget >
diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh index 1d510cd47b..8f8a22ba60 100644 --- a/contrib/completion/git-prompt.sh +++ b/contrib/completion/git-prompt.sh @@ -430,9 +430,9 @@ __git_ps1 () __git_eread "$g/rebase-merge/msgnum" step __git_eread "$g/rebase-merge/end" total if [ -f "$g/rebase-merge/interactive" ]; then - r="|REBASE-i" + r="|REBASE" else - r="|REBASE-m" + r="|REBASE" fi else if [ -d "$g/rebase-apply" ]; then diff --git a/t/t9903-bash-prompt.sh b/t/t9903-bash-prompt.sh index 88bc733ad6..7ca35d358d 100755 --- a/t/t9903-bash-prompt.sh +++ b/t/t9903-bash-prompt.sh @@ -163,7 +163,7 @@ test_expect_success 'prompt - inside bare repository' ' ' 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 && echo "exec echo" >"$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' ' - printf " (b2|REBASE-i 1/3)" >expected && + printf " (b2|REBASE 1/3)" >expected && git checkout b2 && test_when_finished "git checkout master" && test_must_fail git rebase --merge b1 b2 && @@ -189,11 +189,11 @@ test_expect_success 'prompt - rebase merge' ' test_cmp expected "$actual" ' -test_expect_success 'prompt - rebase' ' +test_expect_success 'prompt - rebase am' ' printf " (b2|REBASE 1/3)" >expected && git checkout b2 && 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" && __git_ps1 >"$actual" && test_cmp expected "$actual"