Получить номер ревизии удаленного хранилища
Вопрос
На локальном компьютере нет проблем получить номер ревизии хранилища 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]\+'