5

我们计划在悉尼的另一个办公室建立一个 SVN 镜像存储库。我们在两个位置都使用 VisualSVN 服务器 v2.5.7。

我决定用svnsync它来做。起初我想同步我们所有的存储库,当所有存储库都与镜像存储库同步时,调度程序将在svnsync每个午夜调用。

它可以同步我们的一个存储库的 167 个修订版。但是在第 168 版中,我们有一个无法同步的大文件(大约 250 MB 的压缩 oracle 文件)。即使我修改了本地和远程服务器的超时,它也不起作用。它一次坚持大约一小时,并给我以下错误:

传输文件数据......................svnsync: E175002: PUT of '/ {some path} /{ bigfile }.zip': 无法发送请求正文:已建立的连接被主机中的软件中止。<{目标网址}>

httpd-custom.conf以下是我在VisualSVN(本地、镜像)的 Apache 服务器中的文件中所做的修改:

Timeout 300000
KeepAlive On
MaxKeepAliveRequests 0
KeepAliveTimeout 300000

<IfModule dav_svn_module="">  
  # Enable a 1 Gb Subversion data cache for both fulltext and deltas.  
  SVNInMemoryCacheSize 1048576  
  SVNCacheTextDeltas On  
  SVNCacheFullTexts On
  #SVNCompressionLevel 9
</IfModule> 

我什至将超时时间增加到 600000 或更多,但结果是一样的。我以 http 模式启动了两台服务器。在我们的本地网络上,它可以在 20 分钟内同步所有该存储库。

关于我们互联网连接的上传速度约为 256 Kbs,我不希望这次是在互联网环境中。但我希望 SVN 服务器等待我为它们设置的超时,因为我们可以轻松地将这些大小的文件提交到使用 CollabNet Server 的其他 SVN 服务器中。只需 2 小时即可成功提交。我认为 300000 秒的超时时间远非 2 小时。

4

1 回答 1

2

将您的 VisualSVN 服务器实例升级到最新版本。

从 Subversion 1.8 开始,serf使用性能更好的 HTTP 客户端库而不是旧的neon. svnsync因此,在使用不稳定的低带宽连接时,您可能会看到较少的问题。

关于我们的互联网连接的上传速度约为256 Kbs

从版本系列 3.0 开始,VisualSVN 服务器企业版有一个特殊功能可以帮助您消除低带宽瓶颈:多站点存储库复制 (VDFS)

与基于直写代理的复制系统相比,基于 VisualSVN 分布式文件系统的 Subversion 存储库的复制速度要快 10 倍以上(据我所知,您现在正在使用直写代理)。

除此之外,VDFS 支持锁定、复制用户访问权限并确保在所有复制的存储库上一致地执行 SVN 挂钩脚本。

于 2016-01-19T11:22:19.897 回答