Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Oh My Zsh
Commits
6ce08acb
Commit
6ce08acb
authored
Dec 30, 2012
by
Artie Kh
Browse files
added support for subversion 1.7 for svn plugin
parent
55f09f89
Changes
1
Hide whitespace changes
Inline
Side-by-side
plugins/svn/svn.plugin.zsh
View file @
6ce08acb
function
svn_prompt_info
{
if
[
$(
in_svn
)
]
;
then
if
[
"x
$SVN_SHOW_BRANCH
"
=
"xtrue"
]
;
then
unset
SVN_SHOW_BRANCH
_DISPLAY
=
$(
svn_get_branch_name
)
else
_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
"
unset
_DISPLAY
# vim:ft=zsh ts=2 sw=2 sts=2
#
function
svn_prompt_info
()
{
if
in_svn
;
then
if
[
"x
$SVN_SHOW_BRANCH
"
=
"xtrue"
]
;
then
unset
SVN_SHOW_BRANCH
_DISPLAY
=
$(
svn_get_branch_name
)
else
_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
"
unset
_DISPLAY
fi
}
function
in_svn
()
{
if
[[
-d
.svn
]]
;
then
echo
1
fi
if
$(
svn info
>
/dev/null 2>&1
)
;
then
return
0
fi
return
1
}
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"
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"
fi
}
function
svn_get_branch_name
{
_DISPLAY
=
$(
svn info 2> /dev/null |
awk
-F
/
'/^URL:/ { for (i=0; i<=NF; i++) { if ($i == "branches" || $i == "tags" ) { print $(i+1); break }; if ($i == "trunk") { print $i; break } } }'
)
if
[
"x
$_DISPLAY
"
=
"x"
]
;
then
svn_get_repo_name
else
echo
$_DISPLAY
fi
unset
_DISPLAY
function
svn_get_branch_name
()
{
_DISPLAY
=
$(
svn info 2> /dev/null |
\
awk
-F
/
\
'/^URL:/ { \
for (i=0; i<=NF; i++) { \
if ($i == "branches" || $i == "tags" ) { \
print $(i+1); \
break;\
}; \
if ($i == "trunk") { print $i; break; } \
} \
}'
)
if
[
"x
$_DISPLAY
"
=
"x"
]
;
then
svn_get_repo_name
else
echo
$_DISPLAY
fi
unset
_DISPLAY
}
function
svn_get_rev_nr
{
if
[
$(
in_svn
)
]
;
then
svn info 2> /dev/null |
sed
-n
s/Revision:
\
//p
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
svn status 2> /dev/null |
grep
-Eq
'^\s*[ACDIM!?L]'
if
[
$pipestatus
[
-1
]
-eq
0
]
;
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
function
svn_dirty_choose
()
{
if
in_svn
;
then
root
=
`
svn info 2> /dev/null |
sed
-n
's/^Working Copy Root Path: //p'
`
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
{
svn_dirty_choose
$ZSH_THEME_SVN_PROMPT_DIRTY
$ZSH_THEME_SVN_PROMPT_CLEAN
function
svn_dirty
()
{
svn_dirty_choose
$ZSH_THEME_SVN_PROMPT_DIRTY
$ZSH_THEME_SVN_PROMPT_CLEAN
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment