[PATCHv3 00/16] bash prompt speedup

2013-06-24 Thread SZEDER Gábor
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

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCHv3 00/16] bash prompt speedup

2013-06-24 Thread Junio C Hamano
SZEDER Gábor sze...@ira.uka.de writes:

 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.

Well, then I'll fetch that premerged result and queue it on 'pu',
wait for a while just in case if you need to reroll based on
somebody else's input and otherwise merge that down to 'next' and
then to 'master'.

Thanks.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCHv3 00/16] bash prompt speedup

2013-06-24 Thread Eduardo R. D'Avila
2013/6/24 SZEDER Gábor sze...@ira.uka.de:
 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.

Gábor, the conflict resolution is quite correct.

Thanks,

Eduardo
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html