git-commit-vandalism/contrib/completion
SZEDER Gábor 3a43c4b5bd bash prompt: use bash builtins to find out current branch
__git_ps1() runs the '$(git symbolic-ref HEAD)' command substitution
to find out whether we are on a branch and to find out the name of
that branch.  This imposes the overhead of fork()ing a subshell and
fork()+exec()ing a git process.

Since HEAD is in most cases a single-line file and the symbolic ref
format is quite simple to recognize and parse, read and parse it using
only bash builtins, thereby sparing all that fork()+exec() overhead.
Don't display the git prompt if reading HEAD fails, because a readable
HEAD is required for a git repository.  HEAD can also be a symlink
symbolic ref (due to 'core.preferSymlinkRefs'), so use bash builtins
for reading HEAD only when HEAD is not a symlink.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
2013-06-24 17:22:10 +02:00
..
git-completion.bash bash prompt: run 'git rev-parse --git-dir' directly instead of __gitdir() 2013-06-24 17:22:09 +02:00
git-completion.tcsh Merge branch 'mk/tcsh-complete-only-known-paths' 2013-02-08 15:28:51 -08:00
git-completion.zsh completion: zsh: improve bash script loading 2013-05-29 12:56:30 -07:00
git-prompt.sh bash prompt: use bash builtins to find out current branch 2013-06-24 17:22:10 +02:00