Re: [PATCH v7] git-prompt: make colourization consistent

2 messages, 2 authors, 2022-06-11 · open the first message on its own page

Re: [PATCH v7] git-prompt: make colourization consistent

From: Junio C Hamano <hidden>
Date: 2022-06-09 18:29:32

Joakim Petersen [off-list ref] writes:
On 09/06/2022 11:03, SZEDER Gábor wrote:
quoted
This patch seems to break colorization when __git_ps1() is invoked
from $PROMPT_COMMAND:
   ~/src/git (master)$ echo $PROMPT_COMMAND
__git_ps1 "\[\e]0;\w - Terminal\a\e[01;32m\]\h\[\e[01;34m\] \w" "\[\e[01;34m\]\$\[\e[00m\] " " \[\e[01;34m\](%s\[\e[01;34m\])"
   ~/src/git (master)$ git checkout 9470605a1b
   HEAD is now at 9470605a1b git-prompt: make colourization consistent
   ~/src/git ((9470605a1b...))$ source contrib/completion/git-prompt.sh
   ~/src/git (\[\e[31m\](9470605a1b...)\[\e[0m\])$ # uh-oh
   ~/src/git (\[\e[31m\](9470605a1b...)\[\e[0m\])$ git checkout 9470605a1b^
   Previous HEAD position was 9470605a1b git-prompt: make colourization consistent
   HEAD is now at 2668e3608e Sixth batch
   ~/src/git (\[\e[31m\](2668e3608e...)\[\e[0m\])$ source contrib/completion/git-prompt.sh
   ~/src/git ((2668e3608e...))$ # Looks good.
While I did test this on my own prompt for v6 (which is identical to v7
in terms of code) and not see any breakage, I have the same issue with
v7. Maybe I forgot to re-source the changed git-prompt.sh. Either way,
The issue stems from $b being wrapped in $__git_ps1_branch_name and then
back into itself after colouring. Moving this wrapping to before colour
is applied fixes this. I will submit a v8 shortly.
As the topic is already in 'next' (and presumably that is how SZEDER
noticed the breakage), please make it an incremental fix-up.

Thanks.

Re: [PATCH v7] git-prompt: make colourization consistent

From: SZEDER Gábor <hidden>
Date: 2022-06-11 09:01:44

On Thu, Jun 09, 2022 at 11:29:25AM -0700, Junio C Hamano wrote:
Joakim Petersen [off-list ref] writes:
quoted
On 09/06/2022 11:03, SZEDER Gábor wrote:
quoted
This patch seems to break colorization when __git_ps1() is invoked
from $PROMPT_COMMAND:
   ~/src/git (master)$ echo $PROMPT_COMMAND
__git_ps1 "\[\e]0;\w - Terminal\a\e[01;32m\]\h\[\e[01;34m\] \w" "\[\e[01;34m\]\$\[\e[00m\] " " \[\e[01;34m\](%s\[\e[01;34m\])"
   ~/src/git (master)$ git checkout 9470605a1b
   HEAD is now at 9470605a1b git-prompt: make colourization consistent
   ~/src/git ((9470605a1b...))$ source contrib/completion/git-prompt.sh
   ~/src/git (\[\e[31m\](9470605a1b...)\[\e[0m\])$ # uh-oh
   ~/src/git (\[\e[31m\](9470605a1b...)\[\e[0m\])$ git checkout 9470605a1b^
   Previous HEAD position was 9470605a1b git-prompt: make colourization consistent
   HEAD is now at 2668e3608e Sixth batch
   ~/src/git (\[\e[31m\](2668e3608e...)\[\e[0m\])$ source contrib/completion/git-prompt.sh
   ~/src/git ((2668e3608e...))$ # Looks good.
While I did test this on my own prompt for v6 (which is identical to v7
in terms of code) and not see any breakage, I have the same issue with
v7. Maybe I forgot to re-source the changed git-prompt.sh. Either way,
The issue stems from $b being wrapped in $__git_ps1_branch_name and then
back into itself after colouring. Moving this wrapping to before colour
is applied fixes this. I will submit a v8 shortly.
As the topic is already in 'next' (and presumably that is how SZEDER
noticed the breakage),
Indeed.  I usually use a custom git built from 'next' with a couple of
my forever-WIP topics merged on top, and I just happened to build and
deploy a version with this patch already merged the other day, with
the additional stroke of luck that I opened a new terminal window
(what I normally rarely do) whose shell sourced the buggy prompt
script.

I did notice this patch being discussed on the ML, and found the
amount of changes to the expected output in the tests somewhat
suspicious, but, alas, haven't managed to take a closer look before
the patch went into 'next'.  Still hasn't, actually, but FWIW Joakim's
fix (as 0e5d9ef395 in 'seen') does work for me.


Thanks,
Gábor
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help