Fixes#4085: core -> plugin dependency issue.
Rename it to git_current_branch for clarity that it's git-specific.
Update all plugins that were calling it to use new name.
Fix variable leaks by making more variables in lib/git.zsh local.
Have lib/git.zsh use [[ ]] instead of [ ] everywhere.
When the current path is /home/user/.config/doublecmd the prompt
now reads "/h/u/.c/doublecmd", not "/h/u/./doublecmd" as was the
case. This matches what the Fish shell does.
Enclose the Perl snippet in single quotes instead of double quotes.
Switch to normal zsh %F/%f prompt escapes to avoid "eval" and extra variables.
Wrap whole thing in anonymous function so the existing `local`
statements actually work. Then switch '...' to eager "..." so
stuff actually works with local variables. And local-ize the
remaining variables that are used only in prompt construction.
- When the previous command's return status is non-zero and the prompt
is redrawn, graphical errors sometimes arise due to the fg{red} not
being escaped.
Problem
On detached-refs, the git prompt is very slow because it uses a command
to output all refs, which takes 32s on the twitter internal git repo.
Solution
Use git-rev-parse instead of git-show-ref to only output the head ref.
Runtime drops to 0.03 seconds.
Note
Interestingly, git-rev-parse isn't slow without the --head arguement so
I'll probably be cooking up a patch for the git team to speed this up
eventually, but it's still pointless to sigpipe git as it walks the
filesystem.
steeef theme sets colors depending on $TERM, however if %F is
used, it must be closed by %f instead of %{$reset_color%}.
Further on, all %f directives have been replaced by %F and color
support of current TERM is checked more properly.
Removed references for official git __git_ps1() functions.
Change to use omz function git_prompt* functions like:
- git_prompt_info() -> branch name
- git_prompt_status() -> check if untracked, modified, added,
stashed file are in the current git repo
- git_remote_status() -> check if current repo is ahead, behind,
or diverged.
These functions returns string automatically added to your PS1;
these are customizable via exporting ZSH_THEME_GIT_PROMPT*
* Moved git information to left prompt, with
support for:
* +ZSH_THEME_GIT_PROMPT_UNTRACKED, MODIFIED,
STASHED, ADDED, UPSTREAM STATUS
(if applicable)
* Removed right prompt
* Refactored following Google's guidelines for
scripts [ http://goo.gl/oJSXH2 ]
* Using local variables where applicable
Fixes a bug where color of status arrow in prompt is red even when the exit code was zero (or success). This fix correclty returns green arrow on success and red for non-success exit code.