2009-03-08 5 views
9

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

Я попытался это:

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

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

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

ответ

21

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

svn info http://nick:[email protected]/svn | grep Revision 
6
svn info http://nick:[email protected]/svn/test 

должен возвратить информацию об удаленном хранилище, в том числе Revision

5

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

svn info http://nick:[email protected]/svn | awk '/Revision:/ { print $2 }' 
3

На новой версии 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]\+' 
+0

версия XML работал для меня по-французски локали. – davestevens

+0

В версиях Grep и awk оба пропускают акцент в Révision. – davestevens