Merge pull request #253 from loopj/master
Added function git_remote_status to lib/git.zsh which extracts if the local branch is ahead/behind/diverged from remote
This commit is contained in:
commit
77e4c1c9f1
19
lib/git.zsh
19
lib/git.zsh
@ -18,6 +18,25 @@ parse_git_dirty() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# get the difference between the local and remote branches
|
||||||
|
git_remote_status() {
|
||||||
|
remote=${$(git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/}
|
||||||
|
if [[ -n ${remote} ]] ; then
|
||||||
|
ahead=$(git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l)
|
||||||
|
behind=$(git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l)
|
||||||
|
|
||||||
|
if [ $ahead -eq 0 ] && [ $behind -gt 0 ]
|
||||||
|
then
|
||||||
|
echo "$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE"
|
||||||
|
elif [ $ahead -gt 0 ] && [ $behind -eq 0 ]
|
||||||
|
then
|
||||||
|
echo "$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE"
|
||||||
|
elif [ $ahead -gt 0 ] && [ $behind -gt 0 ]
|
||||||
|
then
|
||||||
|
echo "$ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Checks if there are commits ahead from remote
|
# Checks if there are commits ahead from remote
|
||||||
function git_prompt_ahead() {
|
function git_prompt_ahead() {
|
||||||
|
24
themes/intheloop.zsh-theme
Normal file
24
themes/intheloop.zsh-theme
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# ZSH theme by James Smith (http://loopj.com)
|
||||||
|
# A multiline prompt with username, hostname, full path, return status, git branch, git dirty status, git remote status
|
||||||
|
|
||||||
|
local return_status="%{$fg[red]%}%(?..⏎)%{$reset_color%}"
|
||||||
|
|
||||||
|
local host_color="green"
|
||||||
|
if [ -n "$SSH_CLIENT" ]; then
|
||||||
|
local host_color="red"
|
||||||
|
fi
|
||||||
|
|
||||||
|
PROMPT='
|
||||||
|
%{$fg_bold[grey]%}[%{$reset_color%}%{$fg_bold[${host_color}]%}%n@%m%{$reset_color%}%{$fg_bold[grey]%}]%{$reset_color%} %{$fg_bold[blue]%}%10c%{$reset_color%} $(git_prompt_info) $(git_remote_status)
|
||||||
|
%{$fg_bold[cyan]%}❯%{$reset_color%} '
|
||||||
|
|
||||||
|
|
||||||
|
RPROMPT='${return_status}%{$reset_color%}'
|
||||||
|
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[grey]%}(%{$fg[red]%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[grey]%}) %{$fg[yellow]%}⚡%{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[grey]%})"
|
||||||
|
ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE="%{$fg_bold[magenta]%}↓%{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE="%{$fg_bold[magenta]%}↑%{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE="%{$fg_bold[magenta]%}↕%{$reset_color%}"
|
Loading…
Reference in New Issue
Block a user