Получение номера редакции репозитория SVN - PullRequest
5 голосов
/ 27 октября 2009

Есть ли какая-нибудь команда svn или svnadmin, которая будет отображать ревизию локального репо? Мне бы хотелось иметь пакет Windows или сценарий PowerShell, который позволил бы мне сжать репо и назвать его с ревом к электронной почте.

Лучшее, что я могу понять, - это просто найти файл с самым высоким значением в [reporoot]\db\revs\0, но оно кажется неуклюжим, и я не знаю, надежно ли оно.

Ответы [ 6 ]

22 голосов
/ 27 октября 2009
function Get-SvnRevision($dir)
{
  ([xml](svn info $dir --xml)).info.entry.revision
}

PowerShell, Subversion One Liner

7 голосов
/ 27 октября 2009

(Изменить) svnversion не так хорошо, потому что это относится к рабочей копии, а не к хранилищу.

svn info также относится к рабочей копии.

=> svnlook youngest REPOS_PATH должен это сделать. Смотрите также svn redbook.

4 голосов
/ 27 октября 2009

Вы также можете использовать svn info, что дает вам преимущество в том, что вам не нужно запускать его где-то внутри рабочей копии (или указывать путь к рабочей копии) - вы можете передать его URL в репозиторий он отображает различную информацию о хранилище, включая номер последней редакции. svnversion, напротив, будет показывать номер последней редакции рабочей копии, но это не обязательно должно совпадать с ревизией хранилища.

Кроме того, svn info показывает больше подробностей о хранилище, чем svnversion. Это может быть за или против, в зависимости от вашего использования.

3 голосов
/ 27 октября 2009

svnversion - это команда, которую вы хотите. Запустите svnversion --help для объяснения вывода.

2 голосов
/ 20 октября 2016

Попробуйте команды PowerShell для VisualSVN:

Get-Command -Module VisualSVN

Get-SvnRepository предоставит вам список хранилищ и номера ревизий. Ссылка на https://www.visualsvn.com/support/topic/00088/

0 голосов
/ 16 марта 2017

Предыдущие ответы могут не работать со всеми версиями Subversion, не уверен, что более старые версии Subversion поддерживают анализируемый вывод XML. Может заменить "Редакция" на другое информационное свойство.

#this do an info split by new line split by : then get the second parameter where first parameter is equal to Revision
$svnRevision = (svn info "somedirectoryorurl" ) | %{$_ -split '#'} | Where-Object {($_ -split ":")[0] -eq "Revision"} | %{($_ -split ":")[1].Trim()}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...