git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "SZEDER Gábor" <szeder@ira.uka.de>
To: git@vger.kernel.org
Cc: "Eduardo D'Avila" <erdavila@gmail.com>,
	"SZEDER Gábor" <szeder@ira.uka.de>
Subject: [PATCHv3 00/16] bash prompt speedup
Date: Mon, 24 Jun 2013 18:39:10 +0200	[thread overview]
Message-ID: <1372091966-19315-1-git-send-email-szeder@ira.uka.de> (raw)

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 command
executions 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 the last patch.

Changes since v2 [1]:

 - The detached HEAD abbreviated object name is now unique and
   respects core.abbrev; see patches 5 and 11, replacing v2's patch 9.
   (This is why I asked the detached HEAD before root commit thing
   yesterday.)  
 - Patches 12 and 16 are new.
 - Incorporated Peff's suggestion about using the 'write_script'
   helper into patch 2.
 - Incorporated Eric's typofix.
 - Rephrased a few commit messages.

It applies on top of current master; 2847cae8 (prompt: squelch error
output from cat, 2013-06-14) graduated recently.

This patch series will conflict with Eduardo's work on refactoring the
colorizing function, and the conflict is not trivial.  Although there
are still some open questions left with that series (using tput, zsh
tests), those won't affect the conflicts between the two patch series.
So, for the convenience of our maintainer, I picked up Eduardo's
series, took the liberty to apply a fixup commit on top with my
suggestions from [2], merged the two series, and published the result
at:

  https://github.com/szeder/git.git bash-prompt-speedup-and-color-refactorization

Eduardo, could you please also check that my conflict resolution is
correct?  Thanks.


Best,
Gábor


[1] - http://thread.gmane.org/gmane.comp.version-control.git/228132
[2] - http://article.gmane.org/gmane.comp.version-control.git/228707


SZEDER Gábor (16):
  bash prompt: fix redirection coding style in tests
  bash prompt: use 'write_script' helper 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: print unique detached HEAD abbreviated object name
  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: combine 'git rev-parse' executions in the main code path
  bash prompt: combine 'git rev-parse' for detached head
  bash prompt: use bash builtins to check for unborn branch for dirty
    state
  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
  bash prompt: mention that PROMPT_COMMAND mode is faster

 contrib/completion/git-completion.bash |   2 -
 contrib/completion/git-prompt.sh       | 241 ++++++++++++------------
 t/t9902-completion.sh                  | 134 ++++++++++++++
 t/t9903-bash-prompt.sh                 | 323 +++++++++++----------------------
 4 files changed, 367 insertions(+), 333 deletions(-)

-- 
1.8.3.1.599.g4459181

             reply	other threads:[~2013-06-24 16:42 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-24 16:39 SZEDER Gábor [this message]
2013-06-24 16:39 ` [PATCHv3 01/16] bash prompt: fix redirection coding style in tests SZEDER Gábor
2013-06-24 16:39 ` [PATCHv3 02/16] bash prompt: use 'write_script' helper in interactive rebase test SZEDER Gábor
2013-06-24 16:39 ` [PATCHv3 03/16] completion, bash prompt: move __gitdir() tests to completion test suite SZEDER Gábor
2013-06-24 16:39 ` [PATCHv3 04/16] bash prompt: add a test for symbolic link symbolic refs SZEDER Gábor
2013-06-24 16:39 ` [PATCHv3 05/16] bash prompt: print unique detached HEAD abbreviated object name SZEDER Gábor
2013-06-24 16:39 ` [PATCHv3 06/16] bash prompt: return early from __git_ps1() when not in a git repository SZEDER Gábor
2013-06-24 16:39 ` [PATCHv3 07/16] bash prompt: run 'git rev-parse --git-dir' directly instead of __gitdir() SZEDER Gábor
2013-06-24 16:39 ` [PATCHv3 08/16] bash prompt: use bash builtins to find out rebase state SZEDER Gábor
2013-06-24 16:39 ` [PATCHv3 09/16] bash prompt: use bash builtins to find out current branch SZEDER Gábor
2013-06-24 16:39 ` [PATCHv3 10/16] bash prompt: combine 'git rev-parse' executions in the main code path SZEDER Gábor
2013-06-24 16:39 ` [PATCHv3 11/16] bash prompt: combine 'git rev-parse' for detached head SZEDER Gábor
2013-06-24 16:39 ` [PATCHv3 12/16] bash prompt: use bash builtins to check for unborn branch for dirty state SZEDER Gábor
2013-06-24 16:39 ` [PATCHv3 13/16] bash prompt: use bash builtins to check stash state SZEDER Gábor
2013-06-24 16:39 ` [PATCHv3 14/16] bash prompt: avoid command substitution when checking for untracked files SZEDER Gábor
2013-06-24 16:39 ` [PATCHv3 15/16] bash prompt: avoid command substitution when finalizing gitstring SZEDER Gábor
2013-06-24 16:39 ` [PATCHv3 16/16] bash prompt: mention that PROMPT_COMMAND mode is faster SZEDER Gábor
2013-06-24 19:25 ` [PATCHv3 00/16] bash prompt speedup Junio C Hamano
2013-06-25  2:00 ` Eduardo R. D'Avila

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1372091966-19315-1-git-send-email-szeder@ira.uka.de \
    --to=szeder@ira.uka.de \
    --cc=erdavila@gmail.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).