mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-09-28 15:01:21 +02:00
44961: vcs_info svn: Fix infinite loop when /.svn exists.
This commit is contained in:
parent
ce950dd4b4
commit
9e771a0b20
@ -1,5 +1,8 @@
|
||||
2019-12-03 Daniel Shahaf <danielsh@apache.org>
|
||||
|
||||
* 44961: Functions/VCS_Info/Backends/VCS_INFO_get_data_svn:
|
||||
vcs_info svn: Fix infinite loop when /.svn exists.
|
||||
|
||||
* 44962: Functions/VCS_Info/VCS_INFO_bydir_detect,
|
||||
Functions/VCS_Info/vcs_info: vcs_info: Document internal function
|
||||
and variable
|
||||
|
@ -46,17 +46,19 @@ if (( ${+svninfo[Working_Copy_Root_Path]} )); then
|
||||
${vcs_comm[cmd]} info --non-interactive -- "${svnbase}" | while IFS=: read a b; do svninfo[${a// /_}]="${b## #}"; done
|
||||
else
|
||||
# svn 1.0-1.6
|
||||
while [[ -d "${svnbase}/../.svn" ]]; do
|
||||
svnbase=${svnbase:P}
|
||||
while [[ -d "${svnbase:h}/.svn" ]]; do
|
||||
parentinfo=()
|
||||
${vcs_comm[cmd]} info --non-interactive -- "${svnbase}/.." | while IFS=: read a b; do parentinfo[${a// /_}]="${b## #}"; done
|
||||
${vcs_comm[cmd]} info --non-interactive -- "${svnbase:h}" | while IFS=: read a b; do parentinfo[${a// /_}]="${b## #}"; done
|
||||
[[ ${parentinfo[Repository_UUID]} != ${svninfo[Repository_UUID]} ]] && break
|
||||
svninfo=(${(kv)parentinfo})
|
||||
svnbase="${svnbase}/.."
|
||||
svnbase=${svnbase:h}
|
||||
if [[ $svnbase == '/' ]]; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
svnbase=${svnbase:P}
|
||||
|
||||
rrn=${svnbase:t}
|
||||
zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" branchformat svnbranch || svnbranch="%b:%r"
|
||||
hook_com=( branch "${svninfo[URL]##*/}" revision "${cwdinfo[Revision]}" )
|
||||
|
Loading…
Reference in New Issue
Block a user