Получение конкретной версии через http с помощью VisualSVN Server
-
03-07-2019 - |
Вопрос
Я использую 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-адреса, которые вы сможете использовать для получения старых версий.]
А страница справки для веб-интерфейса 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.