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

[PATCH v2 00/13] bash prompt speedup

From
SZEDER Gábor <szeder@ira.uka.de>
Date
Jun 18, 2013, 02:16 UTC
Message-ID
<1371521826-3225-1-git-send-email-szeder@ira.uka.de>
From: SZEDER Gábor <szeder@ira.uka.de>
Hi,

displaying the git-specific bash prompt on Windows/MinGW takes quite long, long enough to be noticeable. This is mainly caused by the numerous fork()s and exec()s to create subshells and run git or other commands, which are rather expensive on Windows.

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.

SZEDER Gábor (13):
  bash prompt: fix redirection coding style in tests
  bash prompt: fix here document indentation in interactive rebase test
  completion, bash prompt: move __gitdir() tests to completion test
    suite
  bash prompt: add a test for symbolic link symbolic refs
  bash prompt: return early from __git_ps1() when not in a git
    repository
  bash prompt: run 'git rev-parse --git-dir' directly instead of
    __gitdir()
  bash prompt: use bash builtins to find out rebase state
  bash prompt: use bash builtins to find out current branch
  bash prompt: use bash builtins to get detached HEAD abbrev. object
    name
  bash prompt: combine 'git rev-parse' executions
  bash prompt: use bash builtins to check stash state
  bash prompt: avoid command substitution when checking for untracked
    files
  bash prompt: avoid command substitution when finalizing gitstring
 contrib/completion/git-completion.bash |   2 -
 contrib/completion/git-prompt.sh       | 223 ++++++++++++-----------
 t/t9902-completion.sh                  | 134 ++++++++++++++
 t/t9903-bash-prompt.sh                 | 319 +++++++++++----------------------
 4 files changed, 345 insertions(+), 333 deletions(-)
-- 
1.8.3.1.487.g8f4672d
Next: SZEDER Gábor
Message 1 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.