diff options
author | Robby Russell <robby@planetargon.com> | 2012-12-02 11:43:09 -0800 |
---|---|---|
committer | Robby Russell <robby@planetargon.com> | 2012-12-02 11:43:09 -0800 |
commit | 77e4c1c9f11a7630f044bbb02fdeeeb206a5ab8e (patch) | |
tree | c523f634118a861ef600cc19d538719f9aff71a5 /lib/git.zsh | |
parent | e4a596c09532ec1adae2951b3893fd9a7960cdbe (diff) | |
parent | 00bff0a9963d4b36e6afc968449781c727bfef3b (diff) | |
download | zsh-77e4c1c9f11a7630f044bbb02fdeeeb206a5ab8e.tar.gz zsh-77e4c1c9f11a7630f044bbb02fdeeeb206a5ab8e.tar.bz2 zsh-77e4c1c9f11a7630f044bbb02fdeeeb206a5ab8e.zip |
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
Diffstat (limited to 'lib/git.zsh')
-rw-r--r-- | lib/git.zsh | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/git.zsh b/lib/git.zsh index fb4ad8ca6..258b1df8f 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -18,6 +18,25 @@ parse_git_dirty() { 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 function git_prompt_ahead() { |