浏览代码

Merge pull request #2607 from avonderluft/dev

Show svn dirty on current dir, as well as whole working copy
Robby Russell 11 年之前
父节点
当前提交
fed807655a
共有 1 个文件被更改,包括 20 次插入1 次删除
  1. 20 1
      plugins/svn/svn.plugin.zsh

+ 20 - 1
plugins/svn/svn.plugin.zsh

@@ -9,7 +9,7 @@ function svn_prompt_info() {
       _DISPLAY=$(svn_get_repo_name)
       _DISPLAY=$(svn_get_repo_name)
     fi
     fi
     echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\
     echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\
-$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR"
+$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$(svn_dirty_pwd)$ZSH_PROMPT_BASE_COLOR"
     unset _DISPLAY
     unset _DISPLAY
   fi
   fi
 }
 }
@@ -74,3 +74,22 @@ function svn_dirty_choose() {
 function svn_dirty() {
 function svn_dirty() {
   svn_dirty_choose $ZSH_THEME_SVN_PROMPT_DIRTY $ZSH_THEME_SVN_PROMPT_CLEAN
   svn_dirty_choose $ZSH_THEME_SVN_PROMPT_DIRTY $ZSH_THEME_SVN_PROMPT_CLEAN
 }
 }
+
+function svn_dirty_choose_pwd () {
+  if in_svn; then
+    root=`pwd`
+    if $(svn status $root 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]'); then
+      # Grep exits with 0 when "One or more lines were selected", return "dirty".
+      echo $1
+    else
+      # Otherwise, no lines were found, or an error occurred. Return clean.
+      echo $2
+    fi
+  fi
+}
+
+function svn_dirty_pwd () {
+  svn_dirty_choose_pwd $ZSH_THEME_SVN_PROMPT_DIRTY_PWD $ZSH_THEME_SVN_PROMPT_CLEAN_PWD
+}
+
+