Получить номер версии удаленного репозитория

На локальной машине не проблема получить номер ревизии репозитория Subversion с помощью svnversion. Теперь я хочу получить номер версии из моего онлайн-репозитория (WebDAV с Apache2).

Я пробовал это:

svnversion http://nick:[email protected]/svn/test`

В браузере все работало как обычно (просто чтобы не было опечаток или чего-то подобного), но svnversion сказал, что директория не найдена. Так что я полагаю, что я был на неправильном пути.

Как я могу получить номер версии?


person okoman    schedule 08.03.2009    source источник


Ответы (5)


svnversion предназначена только для рабочих копий, но один из способов запросить ваш репозиторий использовать svn info следующим образом :

svn info http://nick:[email protected]/svn | grep Revision
person Paul Dixon    schedule 08.03.2009


Удобный однострочник AWK для получения только числовой части:

svn info http://nick:[email protected]/svn | awk '/Revision:/ { print $2 }'
person Community    schedule 06.09.2011

svn info http://nick:[email protected]/svn/test

должен возвращать информацию об удаленном репозитории, включая ревизию

person Avi    schedule 08.03.2009

В новой версии svn (1.9) вы можете сделать:

svn info --show-item revision svn://...
18436 

Это должно вернуть только номер версии.

Вся версия grep сломается, если ваш язык не английский.

Для предыдущей версии вы можете попробовать

svn info --xml | grep '<entry' -3 | awk -F '=' '/revision="/ { print $2 }' | grep -o '[0-9]\+'

Если у вас есть пакет xml2, лучший способ сделать это:

svn info --xml | xml2 | grep /info/entry/@revision | grep -o '[0-9]\+' 
person Tic    schedule 15.04.2016
comment
Версии grep и awk пропускают ударение в Révision. - person davestevens; 09.06.2017