git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Jun 1, 2022, 14:47 UTC
Message-ID
<220601.864k141ls0.gmgdl@evledraar.gmail.com>
In-Reply-To
<20220601134414.66825-1-joak-pet@online.no>
On Wed, Jun 01 2022, Joakim Petersen wrote:
Show 57 quoted lines
> The short upstream state indicator inherits the colour of the last short
> state indicator before it (if there is one), and the sparsity state
> indicator inherits this colour as well. Make the colourization of these
> state indicators consistent by clearing any colour before printing the
> short upstream state indicator, as this immediately follows the last
> coloured indicator.
>
> Signed-off-by: Joakim Petersen <joak-pet@online.no>
> ---
> As of 0ec7c23cdc6bde5af3039c59e21507adf7579a99, colourization of the
> output of __git_ps1 has changed such that the short upstream state
> indicator inherits the colour of the last short state indicator before
> it (if there is one), while before this change it was white/the default
> text colour. Some examples of what I mean are (assuming all indicators
> are enabled):
>  * If the local tree is clean and there is something in the stash, both
>    the '$' and the short upstream state indicator following it will be
>    blue.
>  * If the local tree has new, untracked files, both the '%' and the
>    short upstream state indicator will be red.
>  * If all local changes are added to the index and the stash is empty,
>    both the '+' and the short upstream state indicator following it will
>    be green.
>  * If the local tree is clean and there is nothing in the stash, the
>    short upstream state indicator will be white/${default text colour}.
>
> This appears to be an unintended side-effect of the change, and makes
> little sense semantically (e.g. why is it bad to be in sync with
> upstream when you have uncommitted local changes?). The cause of the
> change is that previously, the short upstream state indicator appeared
> immediately after the rebase/revert/bisect/merge state indicator, which
> is prepended with the clear colour code, while it now follows the
> sequence of colourized indicators, without any clearing of colour.
> However, adding a clearing of colour before the short upstream state
> indicator will change how the sparsity state indicator is colourized,
> as it currently inherits (and before the change referenced also
> inherited) the colour of the last short state indicator before it.
> Reading the commit message of the change that introduced the sparsity
> state indicator, it appears this colourization also was unintended.
>
>  contrib/completion/git-prompt.sh | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
> index 87b2b916c0..dfd6cef35f 100644
> --- a/contrib/completion/git-prompt.sh
> +++ b/contrib/completion/git-prompt.sh
> @@ -286,6 +286,7 @@ __git_ps1_colorize_gitstring ()
>  	if [ -n "$u" ]; then
>  		u="$bad_color$u"
>  	fi
> +	p="$c_clear$p"
>  	r="$c_clear$r"
>  }
>  
>
> base-commit: e54793a95afeea1e10de1e5ad7eab914e7416250

This seems to make sense to me, but I haven't looked deeply into it. But let's CC the author of 0ec7c23cdc6 (git-prompt: make upstream state indicator location consistent, 2022-02-27) (which I've done here).

For a non-RFC patch I think a rephrasing of most of what yo uhave below "--" should be part of the message. Note how I referred to the 0ec... commit above, you should reference the commit like that (see SubmittingPatches).

Thanks for working on this fix!
 
Previous: Joakim PetersenNext: Joakim Petersen
Message 2 of 43 in “git-prompt: make colourization consistent”
  1. git-prompt: make colourization consistentJoakim Petersen, Jun 1, 2022
  2. Ævar Arnfjörð BjarmasonJun 1, 2022
  3. Joakim PetersenJun 1, 2022
  4. Junio C HamanoJun 1, 2022
  5. Joakim PetersenJun 1, 2022
  6. Junio C HamanoJun 1, 2022
  7. git-prompt: make colourization consistentJoakim Petersen, Jun 2, 2022
  8. joak-pet@online.noJun 2, 2022
  9. Junio C HamanoJun 2, 2022
  10. Joakim PetersenJun 3, 2022
  11. git-prompt: make colourization consistentJoakim Petersen, Jun 3, 2022
  12. Junio C HamanoJun 3, 2022
  13. Joakim PetersenJun 3, 2022
  14. Joakim PetersenJun 3, 2022
  15. Justin DonnellyJun 3, 2022
  16. Junio C HamanoJun 3, 2022
  17. Joakim PetersenJun 4, 2022
  18. Junio C HamanoJun 6, 2022
  19. Junio C HamanoJun 3, 2022
  20. git-prompt: make colourization consistentJoakim Petersen, Jun 4, 2022
  21. Justin DonnellyJun 4, 2022
  22. Joakim PetersenJun 4, 2022
  23. git-prompt: make colourization consistentJoakim Petersen, Jun 4, 2022
  24. Bagas SanjayaJun 6, 2022
  25. Junio C HamanoJun 7, 2022
  26. Joakim PetersenJun 9, 2022
  27. Junio C HamanoJun 6, 2022
  28. Joakim PetersenJun 6, 2022
  29. Junio C HamanoJun 6, 2022
  30. Joakim PetersenJun 7, 2022
  31. git-prompt: make colourization consistentJoakim Petersen, Jun 6, 2022
  32. git-prompt: make colourization consistentJoakim Petersen, Jun 7, 2022
  33. Junio C HamanoJun 7, 2022
  34. Joakim PetersenJun 9, 2022
  35. SZEDER GáborJun 9, 2022
  36. Joakim PetersenJun 9, 2022
  37. Junio C HamanoJun 9, 2022
  38. SZEDER GáborJun 11, 2022
  39. git-prompt: make colouring consistentJoakim Petersen, Jun 9, 2022
  40. git-prompt: fix expansion of branch colour codesJoakim Petersen, Jun 9, 2022
  41. Junio C HamanoJun 10, 2022
  42. Joakim PetersenJun 10, 2022
  43. git-prompt: fix expansion of branch colour codesJoakim Petersen, Jun 10, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.