1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-06-01 21:06:04 +02:00

44960: vcs_info cvs: Fix infinite loop when /CVS exists.

This commit is contained in:
Daniel Shahaf 2019-12-01 00:04:47 +00:00
parent 9e771a0b20
commit 61262ae282
2 changed files with 12 additions and 3 deletions

View File

@ -1,5 +1,8 @@
2019-12-03 Daniel Shahaf <danielsh@apache.org>
* 44960: Functions/VCS_Info/Backends/VCS_INFO_get_data_cvs:
vcs_info cvs: Fix infinite loop when /CVS exists.
* 44961: Functions/VCS_Info/Backends/VCS_INFO_get_data_svn:
vcs_info svn: Fix infinite loop when /.svn exists.

View File

@ -5,11 +5,17 @@
setopt localoptions NO_shwordsplit
local cvsbranch cvsbase
# Look for the most distant parent that still has a CVS subdirectory.
# VCS_INFO_detect_cvs ensured that ./CVS/Repository exists.
cvsbase="."
while [[ -d "${cvsbase}/../CVS" ]]; do
cvsbase="${cvsbase}/.."
done
cvsbase=${cvsbase:P}
while [[ -d "${cvsbase:h}/CVS" ]]; do
cvsbase="${cvsbase:h}"
if [[ $cvsbase == '/' ]]; then
break
fi
done
cvsbranch=$(< ./CVS/Repository)
rrn=${cvsbase:t}
cvsbranch=${cvsbranch##${rrn}/}