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
Ohmyzsh
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
# vim:ft=zsh ts=2 sw=2 sts=2
function
svn_prompt_info
{
#
if
[
$(
in_svn
)
]
;
then
function
svn_prompt_info
()
{
if
[
"x
$SVN_SHOW_BRANCH
"
=
"xtrue"
]
;
then
if
in_svn
;
then
unset
SVN_SHOW_BRANCH
if
[
"x
$SVN_SHOW_BRANCH
"
=
"xtrue"
]
;
then
_DISPLAY
=
$(
svn_get_branch_name
)
unset
SVN_SHOW_BRANCH
else
_DISPLAY
=
$(
svn_get_branch_name
)
_DISPLAY
=
$(
svn_get_repo_name
)
else
fi
_DISPLAY
=
$(
svn_get_repo_name
)
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
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
()
{
function
in_svn
()
{
if
[[
-d
.svn
]]
;
then
if
$(
svn info
>
/dev/null 2>&1
)
;
then
echo
1
return
0
fi
fi
return
1
}
}
function
svn_get_repo_name
{
function
svn_get_repo_name
()
{
if
[
$(
in_svn
)
]
;
then
if
in_svn
;
then
svn info |
sed
-n
's/Repository\ Root:\ .*\///p'
|
read
SVN_ROOT
svn info |
sed
-n
's/Repository\ Root:\ .*\///p'
|
read
SVN_ROOT
svn info |
sed
-n
"s/URL:
\
.*
$SVN_ROOT
\/
//p"
svn info |
sed
-n
"s/URL:
\
.*
$SVN_ROOT
\/
//p"
fi
fi
}
}
function
svn_get_branch_name
{
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 } } }'
)
_DISPLAY
=
$(
if
[
"x
$_DISPLAY
"
=
"x"
]
;
then
svn info 2> /dev/null |
\
svn_get_repo_name
awk
-F
/
\
else
'/^URL:/ { \
echo
$_DISPLAY
for (i=0; i<=NF; i++) { \
fi
if ($i == "branches" || $i == "tags" ) { \
unset
_DISPLAY
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
{
function
svn_get_rev_nr
()
{
if
[
$(
in_svn
)
]
;
then
if
in_svn
;
then
svn info 2> /dev/null |
sed
-n
s/Revision:
\
//p
svn info 2> /dev/null |
sed
-n
'
s/Revision:\ //p
'
fi
fi
}
}
function
svn_dirty_choose
{
function
svn_dirty_choose
()
{
if
[
$(
in_svn
)
]
;
then
if
in_svn
;
then
svn status 2> /dev/null |
grep
-Eq
'^\s*[ACDIM!?L]'
root
=
`
svn info 2> /dev/null |
sed
-n
's/^Working Copy Root Path: //p'
`
if
[
$pipestatus
[
-1
]
-eq
0
]
;
then
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".
# Grep exits with 0 when "One or more lines were selected", return "dirty".
echo
$1
echo
$1
else
else
# Otherwise, no lines were found, or an error occurred. Return clean.
# Otherwise, no lines were found, or an error occurred. Return clean.
echo
$2
echo
$2
fi
fi
fi
fi
}
}
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
}
}
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