7b25a3fca9
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.
43 lines
995 B
Bash
43 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
|
|
}
|