Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
oh-my-zsh
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
github
oh-my-zsh
Commits
642ae64b
Commit
642ae64b
authored
Jan 07, 2014
by
Brice Dutheil
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Inline `parse_svn` to avoid leaky state
As noted in review, `in_svn` is not properly reset to false. This is better anyway to not leak state.
parent
1304ed8d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
20 deletions
+16
-20
svn-fast-info.plugin.zsh
plugins/svn-fast-info/svn-fast-info.plugin.zsh
+16
-20
No files found.
plugins/svn-fast-info/svn-fast-info.plugin.zsh
View file @
642ae64b
...
@@ -9,18 +9,14 @@
...
@@ -9,18 +9,14 @@
#
#
# *** IMPORTANT *** DO NO USE with the simple svn plugin, this plugin acts as a replacement of it.
# *** IMPORTANT *** DO NO USE with the simple svn plugin, this plugin acts as a replacement of it.
function
parse_svn
()
{
function
svn_prompt_info
()
{
info
=
$(
svn info 2>&1
)
||
return
;
# capture stdout and stdout
info
=
$(
svn info 2>&1
)
||
return
;
# capture stdout and stdout
in_svn
=
true
in_svn
=
true
repo_need_upgrade
=
"
$(
svn_repo_need_upgrade
$info
)
"
repo_need_upgrade
=
"
$(
svn_repo_need_upgrade
$info
)
"
svn_branch_name
=
"
$(
svn_get_branch_name
$info
)
"
svn_branch_name
=
"
$(
svn_get_branch_name
$info
)
"
svn_dirty
=
"
$(
svn_dirty_choose
)
"
svn_dirty
=
"
$(
svn_dirty_choose
)
"
svn_repo_name
=
"
$(
svn_get_repo_name
$info
)
"
svn_repo_name
=
"
$(
svn_get_repo_name
$info
)
"
svn_rev
=
"
$(
svn_get_revision
$info
)
"
svn_rev
=
"
$(
svn_get_revision
$info
)
"
}
function
svn_prompt_info
()
{
eval
parse_svn
if
[
!
-z
$repo_need_upgrade
]
;
then
if
[
!
-z
$repo_need_upgrade
]
;
then
echo
$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX$ZSH_PROMPT_BASE_COLOR
\
echo
$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX$ZSH_PROMPT_BASE_COLOR
\
...
@@ -28,13 +24,13 @@ $repo_need_upgrade\
...
@@ -28,13 +24,13 @@ $repo_need_upgrade\
$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR
$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR
fi
fi
if
[[
${
in_svn
}
==
true
&&
-z
$repo_need_upgrade
]]
;
then
if
[[
${
in_svn
}
==
true
&&
-z
$repo_need_upgrade
]]
;
then
echo
"
$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX
\
echo
"
$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX
\
$ZSH_THEME_REPO_NAME_COLOR
${
svn_branch_name
}
\
$ZSH_THEME_REPO_NAME_COLOR
${
svn_branch_name
}
\
$ZSH_PROMPT_BASE_COLOR
${
svn_dirty
}
\
$ZSH_PROMPT_BASE_COLOR
${
svn_dirty
}
\
$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX
\
$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX
\
$ZSH_PROMPT_BASE_COLOR
"
$ZSH_PROMPT_BASE_COLOR
"
fi
fi
}
}
...
@@ -47,24 +43,24 @@ function svn_repo_need_upgrade() {
...
@@ -47,24 +43,24 @@ function svn_repo_need_upgrade() {
function
svn_get_branch_name
()
{
function
svn_get_branch_name
()
{
info
=
$1
info
=
$1
[
-z
"
${
info
}
"
]
&&
info
=
$(
svn info 2> /dev/null
)
[
-z
"
${
info
}
"
]
&&
info
=
$(
svn info 2> /dev/null
)
echo
$info
|
grep
'^URL:'
| egrep
-o
'(tags|branches)/[^/]+|trunk'
| egrep
-o
'[^/]+$'
|
read
SVN_URL
echo
$info
|
grep
'^URL:'
| egrep
-o
'(tags|branches)/[^/]+|trunk'
| egrep
-o
'[^/]+$'
|
read
SVN_URL
echo
$SVN_URL
echo
$SVN_URL
}
}
function
svn_get_repo_name
()
{
function
svn_get_repo_name
()
{
info
=
$1
info
=
$1
[
-z
"
${
info
}
"
]
&&
info
=
$(
svn info 2> /dev/null
)
[
-z
"
${
info
}
"
]
&&
info
=
$(
svn info 2> /dev/null
)
echo
$info
|
sed
-n
's/Repository\ Root:\ .*\///p'
|
read
SVN_ROOT
echo
$info
|
sed
-n
's/Repository\ Root:\ .*\///p'
|
read
SVN_ROOT
echo
$info
|
sed
-n
"s/URL:
\
.*
$SVN_ROOT
\/
//p"
echo
$info
|
sed
-n
"s/URL:
\
.*
$SVN_ROOT
\/
//p"
}
}
function
svn_get_revision
()
{
function
svn_get_revision
()
{
info
=
$1
info
=
$1
[
-z
"
${
info
}
"
]
&&
info
=
$(
svn info 2> /dev/null
)
[
-z
"
${
info
}
"
]
&&
info
=
$(
svn info 2> /dev/null
)
echo
$info
2> /dev/null |
sed
-n
s/Revision:
\
//p
echo
$info
2> /dev/null |
sed
-n
s/Revision:
\
//p
}
}
function
svn_dirty_choose
()
{
function
svn_dirty_choose
()
{
svn status |
grep
-E
'^\s*[ACDIM!?L]'
>
/dev/null 2>/dev/null
&&
echo
$ZSH_THEME_SVN_PROMPT_DIRTY
&&
return
svn status |
grep
-E
'^\s*[ACDIM!?L]'
>
/dev/null 2>/dev/null
&&
echo
$ZSH_THEME_SVN_PROMPT_DIRTY
&&
return
echo
$ZSH_THEME_SVN_PROMPT_CLEAN
echo
$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