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

Re: [PATCH 2/2] show color hints based on state of the git tree

From
Michael J Gruber <git@drmicha.warpmail.net>
Date
Oct 15, 2012, 15:19 UTC
Message-ID
<507C297D.3040304@drmicha.warpmail.net>
In-Reply-To
<507C0D81.7030005@nieuwland.nl>
Simon Oosthoek venit, vidit, dixit 15.10.2012 15:20:
Show 27 quoted lines
> Hi Michael, sorry for the duplicate, forgot to reply-all...
> 
> On 10/15/2012 11:13 AM, Michael J Gruber wrote:
> 
>> ...only because you don't know the color coding scheme. It's green
>> because those changes are saved somewhere (in the index) and would even
>> survice a branch switch.
>>
> 
> But git doesn't exactly let you do this:
> I modified some things in git-prompt.sh trying to implement some of what 
> we discussed. Then staged the file and tried git checkout HEAD^^ (or any 
> branch)
> 
> error: Your local changes to the following files would be overwritten by 
> checkout:
>          contrib/completion/git-prompt.sh
> Please, commit your changes or stash them before you can switch branches.
> Aborting
> 
> So I don't think it's all that strange to mark the branch as not quite 
> safe to change. The idea (or at least my idea) behind these hints is 
> that it reminds me to do stuff that prevents these "Aborts". I think 
> that that is a useful feature for any user of git.
> 
> In this light, would you accept yellow in the branch color to indicate 
> uncommitted staged changes?
No, simply because it's not up to me to accept something ;)

I still think that following "git status -sb" would be the least confusing solution, and that means

- green for a checked out branch, where you know that any committed
changes will not be "lost"
- red for a detached head, where any committed changes will only be
accessible from the reflog, and only until pruned.

I'm open to change "git status -sb", but I think having the branch coloring and the status character coloring be independent has quite some merit. (Your yellow branch just duplicates the information "there are staged changes".)

Also note that in your example above, you cannot switch branches because your staged changes overlap with the changes in the branch that you want to switch to (changes relative to your current head). Otherwise, you could have switched. The only way to find out whether there's such a conflict is to actually try it, and that is too heavy for a prompt command.

Michael
Previous: Simon OosthoekNext: Simon Oosthoek
Message 40 of 49 in “bash completion with colour hints”
  1. Simon OosthoekSep 26, 2012
  2. Ramkumar RamachandraSep 26, 2012
  3. Simon OosthoekSep 26, 2012
  4. Junio C HamanoSep 27, 2012
  5. Michael J GruberSep 27, 2012
  6. Michael J GruberSep 27, 2012
  7. Simon OosthoekSep 27, 2012
  8. Andreas SchwabSep 27, 2012
  9. Simon OosthoekSep 27, 2012
  10. Add __git_ps1_pc to use as PROMPT_COMMANDSimon Oosthoek, Sep 28, 2012
  11. Junio C HamanoSep 28, 2012
  12. Simon OosthoekOct 1, 2012
  13. Junio C HamanoOct 1, 2012
  14. Simon OosthoekOct 1, 2012
  15. Junio C HamanoOct 1, 2012
  16. Simon OosthoekOct 1, 2012
  17. Junio C HamanoOct 1, 2012
  18. Simon OosthoekOct 1, 2012
  19. Junio C HamanoOct 1, 2012
  20. Michael J GruberOct 2, 2012
  21. Simon OosthoekOct 2, 2012
  22. Junio C HamanoOct 2, 2012
  23. Simon OosthoekOct 2, 2012
  24. Junio C HamanoOct 2, 2012
  25. 1/2 Allow __git_ps1 to be used in PROMPT_COMMANDSimon Oosthoek, Oct 5, 2012
  26. Junio C HamanoOct 8, 2012
  27. Simon OosthoekOct 8, 2012
  28. Junio C HamanoOct 8, 2012
  29. 1/2 Allow __git_ps1 to be used in PROMPT_COMMANDSimon Oosthoek, Oct 10, 2012
  30. Junio C HamanoOct 10, 2012
  31. 2/2 show color hints based on state of the git treeSimon Oosthoek, Oct 10, 2012
  32. 1/2 Allow __git_ps1 to be used in PROMPT_COMMANDSimon Oosthoek, Oct 10, 2012
  33. 2/2 show color hints based on state of the git treeSimon Oosthoek, Oct 10, 2012
  34. 2/2 show color hints based on state of the git treeSimon Oosthoek, Oct 5, 2012
  35. Michael J GruberOct 15, 2012
  36. Simon OosthoekOct 15, 2012
  37. Michael J GruberOct 15, 2012
  38. Simon OosthoekOct 15, 2012
  39. Simon OosthoekOct 15, 2012
  40. Michael J GruberOct 15, 2012
  41. Simon OosthoekOct 8, 2012
  42. Simon OosthoekOct 15, 2012
  43. Junio C HamanoOct 15, 2012
  44. 3/3 Change colors to be based on git status -sb in color modeSimon Oosthoek, Oct 16, 2012
  45. Junio C HamanoOct 16, 2012
  46. 3/3 Change colors to be based on git status -sb in color modeSimon Oosthoek, Oct 16, 2012
  47. Junio C HamanoOct 16, 2012
  48. Junio C HamanoOct 16, 2012
  49. Simon OosthoekOct 17, 2012

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.