33

我正在使用 VisualSVN Server 来托管 SVN 存储库,对于一些自动化工作,我希望能够通过 http[s] 层获取特定版本。

我可以通过对服务器的 http[s] 请求(httpd?)简单地获得 HEAD 版本 - 但是是否有任何能力指定修订,也许作为查询字符串?我好像找不到...

除非我能帮上忙,否则我不想结帐,因为特定文件夹中有很多文件,我不想要全部 - 只需要一两个。

4

5 回答 5

87

迟到总比不到好; https://entire/Path/To/Folder/file/?p=REV

?p=Rev 指定版本

于 2010-06-21T12:59:10.603 回答
7

不知道,如果您已经找到了这个问题的答案,但是在 apache 上的常规 svn 服务器中,您可以通过以下方式获得特定的修订:

http://host/svn-name/!svn/bc/REVISION_NUMBER/path/to/file.ext
  • 主机和 REVISION_NUMBER 很明显
  • /path/to/file.ext 相对于 repo root

我从来没有使用过visualsvn,所以你的里程可能会有所不同。

于 2009-02-22T11:24:52.000 回答
4

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。]

于 2008-10-01T13:59:02.463 回答
2

这:

在 Subversion 中使用 WebDAV

应该有帮助。

于 2009-02-22T12:24:29.110 回答
2

VisualSVN Web 界面的帮助页面建议使用格式如下之一的地址:

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' 为前缀的 repo 修订号。这里没有其他答案提到这一点,并且使用像这样格式化的地址,我能够从我们的 VisualSVN 服务器查看源文件的特定修订版。

于 2019-02-22T11:54:47.747 回答