2008-12-16 61 views
6

我刚刚开始/熟悉Subversion,并想知道 哪个协议在通过网络访问Subversion存储库时提供最佳性能file://或svn://?如果我们不使用svn://协议,那么会遗漏任何我们无法使用file://协议来关闭的功能。我们都在使用Windows身份验证并使用NTFS/UNC安全性的NT域名&上。颠覆协议的性能

TIA!

回答

14

svn书建议您使用file://协议为多个用户

Choosing a Server Configuration

不要有所有用户的简单的想法所吸引直接通过file:// URL访问存储库。即使存储库通过网络共享随时可用,但这是一个糟糕的主意。它删除用户和存储库之间的任何保护层:用户可能意外(或故意)损坏存储库数据库,很难将存储库脱机进行检查或升级,并且可能导致文件许可问题(请参阅“支持多种版本库访问方法”一节)。请注意,这也是我们通过svn + ssh:// URLs - 从安全角度警告访问存储库的原因之一,它与通过file://访问的本地用户实际上是一样的,并且它可能会带来所有相同的问题如果管理员不小心

7

如果要使用Windows身份验证,请使用http(s)协议和apache。设置起来有点困难,但不一定更快,但允许您使用标准apache身份验证方法进行身份验证。包括各种基于窗口的认证方案,或Kerberos。

Btw。通常协议速度不是svn速度的一个因素。 Svn将信息缓存在磁盘上,因此大多数常规操作都基于本地缓存。接下来,速度因子位于存储库和网络带宽中,而不是协议中。

+0

我完全同意。 – 2008-12-23 21:10:13

0

正如Paul de Vrieze所说,SVN使用的协议不会像其他因素那样影响性能。如果你在一个小型局域网上,那么SVN协议可能​​令你满意。在所有其他情况下,似乎最好使用HTTPs://与Apache。我一直在局域网中,SVN://的性能比HTTPS://连接到互联网的性能差。

你还会发现在Apache可能是一个更易于管理的解决方案也是在安全性方面,还是SVN仓库查看。

5

甲结帐/更新过的svn://是大约比通过HTTP(S)快4-12倍://。这个因素取决于文件/文件夹的数量和文件大小。 由于每个文件都是完整的http请求响应周期,因此Apache在很多小文件上速度要慢得多。 在Tortoise中,你可以很容易地看到速度下降:

签出一个大的java项目如果你传输一个巨大的.jar,传输正在上升,在获取源文件和创建包结构时,它会丢弃。

同样重要的是svn签是在客户端比慢SVN导出并且还蚀(Java)的比龟/ CMD慢得多。

1

我同意其他人svn://远远快于http://。话虽如此,我在我的存储库上使用http://,因为我喜欢mod_authz_svn的访问控制文件,而我还没有升级到1.5。

由于我的主存储库非常庞大,我们维护svn://以只读方式运行。我建议用户将你的初始结账作为svn://然后使用svn relocate将其转换为http:// url来提交。更新svn://在我们可以接受的时间内运行。