Получить номер ревизии удаленного хранилища

StackOverflow https://stackoverflow.com/questions/623378

  •  05-07-2019
  •  | 
  •  

Вопрос

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

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

svnversion http://nick:password@www.myhost.de/svn/test`

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

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

Это было полезно?

Решение

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

svn info http://nick:password@www.myhost.de/svn | grep Revision

Другие советы

В Linux, если вы хотите просто номер ревизии:

svn info http: // nick: password@www.myhost.de/svn/ тест | grep '^ Редакция:' | awk '{print $ 2}'

svn info http://nick:password@www.myhost.de/svn/test

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

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

svn info http://nick:password@www.myhost.de/svn | awk '/Revision:/ { print $2 }'

В новой версии 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]\+' 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top