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

Re: git-prompt.sh vs leading white space in __git_ps1()::printf_format

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 12, 2012, 00:03 UTC
Message-ID
<7vy5h45e7b.fsf@alter.siamese.dyndns.org>
In-Reply-To
<7v7goo6vi3.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
> Perhaps like this?
OK, this time with a log message.
-- >8 --
Subject: [PATCH] git-prompt.sh: update PROMPT_COMMAND documentation

The description of __git_ps1 function operating in two-arg mode was not very clear. It said "set PROMPT_COMMAND=__git_ps1" which is not the right usage for this mode, followed by "To customize the prompt, do this", giving a false impression that those who do not want to customize it can get away with no-arg form, which was incorrect.

Make it clear that this mode always takes two arguments, pre and post, with an example.

The straight-forward one should be listed as the primary usage, and the confusing one should be an alternate for advanced users. Swap the order of these two.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 contrib/completion/git-prompt.sh | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
index a8b53ba..9b074e1 100644
--- a/contrib/completion/git-prompt.sh
+++ b/contrib/completion/git-prompt.sh
@@ -10,14 +10,20 @@
 #    1) Copy this file to somewhere (e.g. ~/.git-prompt.sh).
 #    2) Add the following line to your .bashrc/.zshrc:
 #        source ~/.git-prompt.sh
-#    3a) In ~/.bashrc set PROMPT_COMMAND=__git_ps1
-#        To customize the prompt, provide start/end arguments
-#        PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
-#    3b) Alternatively change your PS1 to call __git_ps1 as
+#    3a) Change your PS1 to call __git_ps1 as
 #        command-substitution:
 #        Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
 #        ZSH:  PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '
-#        the optional argument will be used as format string
+#        the optional argument will be used as format string.
+#    3b) Alternatively, if you are using bash, __git_ps1 can be
+#        used for PROMPT_COMMAND with two parameters, <pre> and
+#        <post>, which are strings you would put in $PS1 before
+#        and after the status string generated by the git-prompt
+#        machinery.  e.g.
+#           PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
+#        will show username, at-sign, host, colon, cwd, then
+#        various status string, followed by dollar and SP, as
+#        your prompt.
 #
 # The argument to __git_ps1 will be displayed only if you are currently
 # in a git repository.  The %s token will be the name of the current
-- 
1.8.1.rc1.128.gd8d1528
Previous: Junio C HamanoNext: Simon Oosthoek
Message 8 of 20 in “Re: git-prompt.sh vs leading white space in __git_ps1()::printf_format”
  1. Simon OosthoekNov 28, 2012
  2. Piotr KrukowieckiNov 28, 2012
  3. Simon OosthoekNov 28, 2012
  4. Junio C HamanoNov 28, 2012
  5. Simon OosthoekNov 28, 2012
  6. Simon OosthoekDec 11, 2012
  7. Junio C HamanoDec 11, 2012
  8. Junio C HamanoDec 12, 2012
  9. Simon OosthoekDec 12, 2012
  10. Junio C HamanoDec 12, 2012
  11. Simon OosthoekDec 12, 2012
  12. Junio C HamanoDec 26, 2012
  13. Simon OosthoekDec 26, 2012
  14. make __git_ps1 accept a third parameter in pcmodeSimon Oosthoek, Dec 26, 2012
  15. Junio C HamanoDec 26, 2012
  16. Simon OosthoekDec 26, 2012
  17. Junio C HamanoDec 26, 2012
  18. Junio C HamanoDec 26, 2012
  19. Simon OosthoekDec 26, 2012
  20. Junio C HamanoDec 26, 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.