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

StackOverflow https://stackoverflow.com/questions/157603

Вопрос

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

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

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

Это было полезно?

Решение

Лучше поздно, чем никогда;https://весь/Путь/К/Папка/файл/?p=REV

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

Другие советы

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

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

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

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

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

Если вы хотите получить к нему доступ из своей собственной программы, вы также можете использовать привязку клиента, например 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);
}

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

Этот:

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

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

А страница справки для веб-интерфейса 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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top