Получение конкретной ревизии через 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-адреса, которые можно использовать для получения старых версий.]