ohmyzsh/plugins/svn/svn.plugin.zsh
Andrew Smith 7b25a3fca9 The original SVN pluging would mark a folder as dirty if there was an
svn:external set and the output of 'svn status' returned the check for
the external. E.g.

$ svn st
X       Application

Performing status on external item at 'Application'

Shouldn't be marked as being dirty. By grepping for only the valid
output for what should be class as dirty, it won't return false
positives.
2011-07-25 09:50:54 +10:00

42 lines
995 B
Bash

function svn_prompt_info {
if [ in_svn ]; then
echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\
$ZSH_THEME_REPO_NAME_COLOR$(svn_get_repo_name)$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR"
fi
}
function in_svn() {
if [[ -d .svn ]]; then
echo 1
fi
}
function svn_get_repo_name {
if [ in_svn ]; then
svn info | sed -n 's/Repository\ Root:\ .*\///p' | read SVN_ROOT
svn info | sed -n "s/URL:\ .*$SVN_ROOT\///p" | sed "s/\/.*$//"
fi
}
function svn_get_rev_nr {
if [ in_svn ]; then
svn info 2> /dev/null | sed -n s/Revision:\ //p
fi
}
function svn_dirty_choose {
if [ in_svn ]; then
s=$(svn status|grep -E '^\s*[ACDIM!?L]' 2>/dev/null)
if [ $s ]; then
echo $1
else
echo $2
fi
fi
}
function svn_dirty {
svn_dirty_choose $ZSH_THEME_SVN_PROMPT_DIRTY $ZSH_THEME_SVN_PROMPT_CLEAN
}