summaryrefslogtreecommitdiff
path: root/lib/git.zsh
diff options
context:
space:
mode:
authorRobby Russell <robby@planetargon.com>2012-12-02 11:43:09 -0800
committerRobby Russell <robby@planetargon.com>2012-12-02 11:43:09 -0800
commit77e4c1c9f11a7630f044bbb02fdeeeb206a5ab8e (patch)
treec523f634118a861ef600cc19d538719f9aff71a5 /lib/git.zsh
parente4a596c09532ec1adae2951b3893fd9a7960cdbe (diff)
parent00bff0a9963d4b36e6afc968449781c727bfef3b (diff)
downloadzsh-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.zsh19
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() {