Подтвердить что ты не робот

Получение конкретной версии через http с помощью VisualSVN Server

Я использую VisualSVN Server для размещения SVN-репо, и для некоторых работ по автоматизации я хотел бы получить конкретные версии через слой http [s].

Я могу получить версию HEAD просто через http [s] запрос на сервер (httpd?) - но есть ли возможность указать версию, возможно, как строку запроса? Я не могу найти его...

Я не хочу делать чек, если не могу помочь, поскольку в определенной папке много файлов, и я не хочу их всех - всего один или два.

4b9b3361

Ответ 2

Не знаю, если вы уже нашли ответ на этот вопрос, но на регулярном сервере svn на apache вы можете перейти к конкретной версии с помощью:

http://host/svn-name/!svn/bc/REVISION_NUMBER/path/to/file.ext
  • host и REVISION_NUMBER очевидны.
  • /path/to/file.ext относится к корню репо

Я никогда не использовал visualsvn, поэтому ваш пробег может меняться.

Ответ 3

Subversion не публично документирует Uris, который он использует внутренне для доступа к этой информации. (И там, где это задокументировано, четко указано, что это может измениться в будущих версиях)

Чтобы получить доступ к этой информации в Интернете, вы можете использовать веб-просмотрщик (например, websvn, viewvc).

Если вы хотите получить к нему доступ из своей собственной программы, вы также можете использовать привязку клиента, например SharpSvn.

using (SvnClient client = new SvnClient())
using (FileStream fs = File.Create("c:\\temp\\file.txt"))
{
    // Perform svn cat http://svn.collab.net/svn/repos/trunk/COMMITTERS -r 23456 
    //                    > file.txt

    SvnCatArgs a = new SvnCatArgs();
    a.Revision = 23456;
    client.Cat(new Uri("http://svn.collab.net/svn/repos/trunk/COMMITTERS"), a, fs);
}

[Update 2008-12-31: Одна из следующих версий Subversion запустит документирование общедоступных URL-адресов, которые вы можете использовать для получения старых версий.]