Получение конкретной ревизии через http с помощью VisualSVN Server - PullRequest
31 голосов
/ 01 октября 2008

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

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

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

Ответы [ 5 ]

85 голосов
/ 21 июня 2010

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

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

6 голосов
/ 22 февраля 2009

Не знаю, если вы уже нашли ответ на этот вопрос, но на обычном сервере SVN на Apache вы можете перейти к определенной ревизии с помощью:

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

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

4 голосов
/ 01 октября 2008

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);
}

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

2 голосов
/ 22 февраля 2009

Это:

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

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

0 голосов
/ 22 февраля 2019

На странице справки для веб-интерфейса VisualSVN предлагается использовать адрес, отформатированный следующим образом:

link to r1484 commit in the serf's project repository:
https://demo-server.visualsvn.com/!/#serf/commit/r1484/

link to the current content of the trunk/context.c file in the serf's project repository:
https://demo-server.visualsvn.com/!/#serf/view/head/trunk/context.c

link to the content of trunk/context.c file at revision r2222 in the serf's project repository:
https://demo-server.visualsvn.com/!/#serf/view/r2222/trunk/context.c

Важнейшей вещью представляется номер ревизии репо с префиксом 'r' . Ни один из других ответов здесь не упоминает, что, используя адреса, отформатированные таким образом, я смог просмотреть конкретную версию исходного файла с нашего сервера VisualSVN.

...