Получение конкретной ревизии через http с сервером VisualSVN

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

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

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

4 ответов


лучше поздно, чем никогда; https://entire/Path/To/Folder/file-?p=REV

?p=Rev указывает ревизию


Не знаю, если вы уже нашли ответ на этот вопрос, но в обычном svn-сервере на apache вы можете получить определенную ревизию с:

http://host/svn-name/!svn/bc/REVISION_NUMBER/path/to/file.ext
  • host & REVISION_NUMBER очевидны
  • /путь/к/файлу.ext относительно корня РЕПО

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


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

для доступа к этой информации в интернете можно использовать Web viewer (например. 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);
}

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


Это:

использование WebDAV в Subversion

должно помочь.