使用VisualSVN Server通过http获取特定的修订版

时间:2020-03-06 14:58:33  来源:igfitidea点击:

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

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

除非有帮助,否则我不想结帐,因为特定文件夹中有很多文件,而且我不希望它们全部都只有一两个。

解决方案

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

Dunno,如果我们已经找到了该问题的答案,但是在apache上的常规svn服务器中,我们可以使用以下命令获得特定版本:

http://host/svn-name/!svn/bc/REVISION_NUMBER/path/to/file.ext
  • 主机和REVISION_NUMBER很明显
  • /path/to/file.ext相对于仓库根目录

我从没用过visualsvn,所以行程可能会有所不同。

这:

在Subversion中使用WebDAV

应该有所帮助。

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

?p = Rev指定修订版本