Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Added new function git_remote_status to check if we are ahead, behind…

… or diverged from the remote branch
  • Loading branch information...
commit 2d5412e99be6d9fab50169ad0cf290e022fc6e9b 1 parent 52df854
James Smith authored

Showing 1 changed file with 21 additions and 0 deletions. Show diff stats Hide diff stats

  1. +21 0 lib/git.zsh
21 lib/git.zsh
@@ -4,6 +4,7 @@ function git_prompt_info() {
4 4 echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
5 5 }
6 6
  7 +# get dirty status of the current working tree
7 8 parse_git_dirty () {
8 9 if [[ -n $(git status -s 2> /dev/null) ]]; then
9 10 echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
@@ -12,6 +13,26 @@ parse_git_dirty () {
12 13 fi
13 14 }
14 15
  16 +# get the difference between the local and remote branches
  17 +git_remote_status() {
  18 + remote=${$(git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/}
  19 + if [[ -n ${remote} ]] ; then
  20 + ahead=$(git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l)
  21 + behind=$(git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l)
  22 +
  23 + if [ $ahead -eq 0 ] && [ $behind -gt 0 ]
  24 + then
  25 + echo "$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE"
  26 + elif [ $ahead -gt 0 ] && [ $behind -eq 0 ]
  27 + then
  28 + echo "$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE"
  29 + elif [ $ahead -gt 0 ] && [ $behind -gt 0 ]
  30 + then
  31 + echo "$ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE"
  32 + fi
  33 + fi
  34 +}
  35 +
15 36 # get the status of the working tree
16 37 git_prompt_status() {
17 38 INDEX=$(git status --porcelain 2> /dev/null)

0 comments on commit 2d5412e

Please sign in to comment.
Something went wrong with that request. Please try again.