Я пытаюсь найти самую последнюю версию из списка тегов.
В браузере репозитория SVN у меня есть следующая структура папок:
Когда я запускаю svn list URL/tags
, я получаю:
1.10.0/
1.10.1/
1.11.0/
1.11.1/
1.3.0/
1.3.1/
1.3.2/
1.4.0/
1.4.1/
1.4.2/
1.4.3/
1.4.4/
1.5.0/
1.5.1/
1.5.2/
1.5.3/
1.6.0/
1.6.1/
1.7.0/
1.7.1/
1.8.0/
1.8.1/
1.9.0/
1.9.1/
1.9.2/
1.9.3/
1.9.4/
Из некоторых другихответы, я попытался добавить флаг --limit, но список SVN, кажется, не принимает это.
У меня есть следующий код, который возвращает 1.9.4 в качестве самой последней версии.% svnRoot% - это URL / теги браузера репо
set username=%1
set password=%2
set appName=%3
set svnRoot=%4
CALL :findMaxVersion "svn list --non-interactive --no-auth-cache --username %username% --password %password% %svnRoot%"
GOTO :EOF
:findMaxVersion
set maxMajor=0
set maxMinor=0
set maxPatch=0
for /f %%x in ('%1') do (
for /f "tokens=1,2,3 delims=./" %%a IN ("%%x") DO (
if %%a GTR !maxMajor! (
set maxMajor=%%a
set maxMinor=%%b
set maxPatch=%%c
) else if %%a EQU !maxMajor! (
if %%b GTR !maxMinor! (
set maxMinor=%%b
set maxPatch=%%c
) else if %%b EQU !maxMinor! (
if %%c GTR !maxPatch! (
set maxPatch=%%c
)
)
)
)
)
set recentVersion=%maxMajor%.%maxMinor%.%maxPatch%
echo The final maximum version is: %recentVersion%
Я не уверен, как изменить порядок списка svn или пакетного сценария, чтобы получить 1.11.1 вместо 1.9.4.Любая помощь приветствуется!