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

Re: [PATCH v2 00/13] bash prompt speedup

From
Simon Oosthoek <s.oosthoek@xs4all.nl>
Date
Jun 18, 2013, 19:35 UTC
Message-ID
<20130618193551.GB13480@xs4all.nl>
In-Reply-To
<7vsj0f5pr7.fsf@alter.siamese.dyndns.org>
* Junio C Hamano <gitster@pobox.com> [2013-06-18 09:48:28 -0700]:
Show 22 quoted lines
> SZEDER Gábor <szeder@ira.uka.de> writes:
> 
> > This patch series eliminates many command substitutions and commands
> > in __git_ps1() from top to bottom by replacing them with bash builtins
> > or consolidating them.  A few timing results are shown in the log
> > message of patch 10.
> 
> Nice.  I think I saw Peff's comment and discussion between you two
> already resuted in a fixup, so perhaps I'll see a reroll sometime
> later when the dust settles?
> 
> Also, could you help review the other topic by Eduardo R. D'Avila
> about colored prompt (Sion Oosthoek, who did the color support,
> CC'ed)?
> 
>     http://thread.gmane.org/gmane.comp.version-control.git/228017
> 
> The impression I got when the PROMPT_COMMAND series was discussed
> last October was that you need to use \[...\] pairs to get the
> cursor position right for the purpose of command line editing, and
> D'Avila's series seemed to only do so in PROMPT_COMMAND mode.
> 
Hi Junio e.a.
Unfortunately I'm very busy with lots of stuff, so hardly time to look at this. (I didn't read the full patch or resulting file)
The PROMPT_COMMAND business was not something I was glad to use, I was unable to get command substitution mode to work with colours and keep bash happy about the prompt string length. The thing to test is not whether or not colours appear when using substitution in PS1, but to see whether bash will not mess up the commandline when browsing through the history. This is especially inconvenient with very long commandlines (as you can imagine).
An optimisation which I've not yet had time to work on would be to do a lot of the processing in separate functions and use the result in separate functions for pcmode and subst. mode. The idea being that the maintainability of the logic for generating the prompt goes up (no duplicate code, clear separation, etc.) and the size of the called functions to gerenate the prompt goes down. And perhaps most important that it would be very easy to build a customised version of __git_ps1() using those functions from the standard code. 
I know this is pretty vague, I wish it wasn't so...
If it's somehow possible to eliminate the PROMPT_COMMAND mode, I'm all for it. But I doubt it can be done while keeping commandline browsing working ok... (please go ahead and prove me wrong!)
Cheers
Simon
Previous: Junio C Hamano
Message 22 of 22 in “bash prompt speedup”
  1. 00/13 bash prompt speedupSZEDER Gábor, Jun 18, 2013
  2. 01/13 bash prompt: fix redirection coding style in testsSZEDER Gábor, Jun 18, 2013
  3. 02/13 bash prompt: fix here document indentation in interactive rebase testSZEDER Gábor, Jun 18, 2013
  4. Jeff KingJun 18, 2013
  5. 03/13 completion, bash prompt: move __gitdir() tests to completion test suiteSZEDER Gábor, Jun 18, 2013
  6. 04/13 bash prompt: add a test for symbolic link symbolic refsSZEDER Gábor, Jun 18, 2013
  7. 05/13 bash prompt: return early from __git_ps1() when not in a git repositorySZEDER Gábor, Jun 18, 2013
  8. 06/13 bash prompt: run 'git rev-parse --git-dir' directly instead of __gitdir()SZEDER Gábor, Jun 18, 2013
  9. Eric SunshineJun 18, 2013
  10. 07/13 bash prompt: use bash builtins to find out rebase stateSZEDER Gábor, Jun 18, 2013
  11. 08/13 bash prompt: use bash builtins to find out current branchSZEDER Gábor, Jun 18, 2013
  12. 09/13 bash prompt: use bash builtins to get detached HEAD abbrev. object nameSZEDER Gábor, Jun 18, 2013
  13. 10/13 bash prompt: combine 'git rev-parse' executionsSZEDER Gábor, Jun 18, 2013
  14. Jeff KingJun 18, 2013
  15. SZEDER GáborJun 18, 2013
  16. fixup! bash prompt: use bash builtins to find out current branchSZEDER Gábor, Jun 18, 2013
  17. 11/13 bash prompt: use bash builtins to check stash stateSZEDER Gábor, Jun 18, 2013
  18. 12/13 bash prompt: avoid command substitution when checking for untracked filesSZEDER Gábor, Jun 18, 2013
  19. 13/13 bash prompt: avoid command substitution when finalizing gitstringSZEDER Gábor, Jun 18, 2013
  20. SZEDER GáborJun 18, 2013
  21. Junio C HamanoJun 18, 2013
  22. Simon OosthoekJun 18, 2013

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.