Требуется субкоманда Subversion info , как указано ниже:
$ svn info .
Path: .
URL: http://trac-hacks.org/svn/tracdeveloperplugin/trunk
Repository Root: http://trac-hacks.org/svn
Repository UUID: 7322e99d-02ea-0310-aa39-e9a107903beb
Revision: 4190
Node Kind: directory
Schedule: normal
Last Changed Author: coderanger
Last Changed Rev: 3397
Last Changed Date: 2008-03-19 00:49:02 -0400 (Wed, 19 Mar 2008)
В этом случае есть два номера редакции: 4190 и 3397. 4190 - это номер последней редакции для хранилища, а 3397 - номер редакции последнего изменения в поддереве, из которого было извлечено это рабочее пространство. Вы можете указать путь к рабочей области или URL-адрес к хранилищу.
Фрагмент C # для извлечения этого под Windows будет выглядеть примерно так:
Process process = new Process();
process.StartInfo.FileName = @"svn.exe";
process.StartInfo.Arguments = String.Format(@"info {0}", path);
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
// Parse the svn info output for something like "Last Changed Rev: 1234"
using (StreamReader output = process.StandardOutput)
{
Regex LCR = new Regex(@"Last Changed Rev: (\d+)");
string line;
while ((line = output.ReadLine()) != null)
{
Match match = LCR.Match(line);
if (match.Success)
{
revision = match.Groups[1].Value;
}
}
}
(В моем случае мы используем версию Subversion как часть номера версии для сборок.)