浏览代码

Fix parse_git_dirty() when status.branch is set.

Simon Buchan 10 年之前
父节点
当前提交
676fb4e420
共有 1 个文件被更改,包括 9 次插入12 次删除
  1. 9 12
      lib/git.zsh

+ 9 - 12
lib/git.zsh

@@ -10,23 +10,20 @@ function git_prompt_info() {
 
 
 # Checks if working tree is dirty
 # Checks if working tree is dirty
 parse_git_dirty() {
 parse_git_dirty() {
-  local SUBMODULE_SYNTAX=''
-  local GIT_STATUS=''
-  local CLEAN_MESSAGE='nothing to commit (working directory clean)'
+  local STATUS=''
+  local FLAGS
+  FLAGS=('--porcelain')
   if [[ "$(command git config --get oh-my-zsh.hide-status)" != "1" ]]; then
   if [[ "$(command git config --get oh-my-zsh.hide-status)" != "1" ]]; then
     if [[ $POST_1_7_2_GIT -gt 0 ]]; then
     if [[ $POST_1_7_2_GIT -gt 0 ]]; then
-          SUBMODULE_SYNTAX="--ignore-submodules=dirty"
+      FLAGS+='--ignore-submodules=dirty'
     fi
     fi
     if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]; then
     if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]; then
-        GIT_STATUS=$(command git status -s ${SUBMODULE_SYNTAX} -uno 2> /dev/null | tail -n1)
-    else
-        GIT_STATUS=$(command git status -s ${SUBMODULE_SYNTAX} 2> /dev/null | tail -n1)
-    fi
-    if [[ -n $GIT_STATUS ]]; then
-      echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
-    else
-      echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
+      FLAGS+='--untracked-files=no'
     fi
     fi
+    STATUS=$(command git status ${FLAGS} 2> /dev/null | tail -n1)
+  fi
+  if [[ -n $STATUS ]]; then
+    echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
   else
   else
     echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
     echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
   fi
   fi