summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobby Russell <robby@planetargon.com>2014-03-16 18:45:10 -0700
committerRobby Russell <robby@planetargon.com>2014-03-16 18:45:10 -0700
commitfed807655a4e6196bcca417f02cf237c9d89ef68 (patch)
tree68dc67b5bf293f1304a3c0713ced086edebff265
parent8ee99715560711cbf798a05f2bde72898b21bbb7 (diff)
parentbf4d4db72b065bff57d75355f49192175364b8a5 (diff)
downloadzsh-fed807655a4e6196bcca417f02cf237c9d89ef68.tar.gz
zsh-fed807655a4e6196bcca417f02cf237c9d89ef68.tar.bz2
zsh-fed807655a4e6196bcca417f02cf237c9d89ef68.zip
Merge pull request #2607 from avonderluft/dev
Show svn dirty on current dir, as well as whole working copy
-rw-r--r--plugins/svn/svn.plugin.zsh21
1 files changed, 20 insertions, 1 deletions
diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh
index 4f008ba4e..ef6da5bd3 100644
--- a/plugins/svn/svn.plugin.zsh
+++ b/plugins/svn/svn.plugin.zsh
@@ -9,7 +9,7 @@ function svn_prompt_info() {
_DISPLAY=$(svn_get_repo_name)
fi
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
fi
}
@@ -74,3 +74,22 @@ function svn_dirty_choose() {
function svn_dirty() {
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
+}
+
+