Browse Source

git: output nothing when no commits ahead or behind

This fixes old git_commits_ahead behavior and changes git_commits_behind
to have the same behavior.

Fixes #5355
Marc Cornellà 8 years ago
parent
commit
71201ffd67
1 changed files with 10 additions and 5 deletions
  1. 10 5
      lib/git.zsh

+ 10 - 5
lib/git.zsh

@@ -76,16 +76,21 @@ function git_current_branch() {
 
 # Gets the number of commits ahead from remote
 function git_commits_ahead() {
-  if $(command git rev-parse --git-dir > /dev/null 2>&1); then
-    local COMMITS="$(git rev-list --count @{upstream}..HEAD)"
-    echo "$ZSH_THEME_GIT_COMMITS_AHEAD_PREFIX$COMMITS$ZSH_THEME_GIT_COMMITS_AHEAD_SUFFIX"
+  if command git rev-parse --git-dir &>/dev/null; then
+    local commits="$(git rev-list --count @{upstream}..HEAD)"
+    if [[ "$commits" != 0 ]]; then
+      echo "$ZSH_THEME_GIT_COMMITS_AHEAD_PREFIX$commits$ZSH_THEME_GIT_COMMITS_AHEAD_SUFFIX"
+    fi
   fi
 }
 
 # Gets the number of commits behind remote
 function git_commits_behind() {
-  if $(command git rev-parse --git-dir > /dev/null 2>&1); then
-    echo $(git rev-list --count HEAD..@{upstream})
+  if command git rev-parse --git-dir &>/dev/null; then
+    local commits="$(git rev-list --count HEAD..@{upstream})"
+    if [[ "$commits" != 0 ]]; then
+      echo "$ZSH_THEME_GIT_COMMITS_BEHIND_PREFIX$commits$ZSH_THEME_GIT_COMMITS_BEHIND_SUFFIX"
+    fi
   fi
 }