(Tortoise)SVN中缓慢差异的解决方案?

时间:2010-03-18 08:09:02

标签: performance svn diff

我经常以下列方式进行代码审查:

  1. 打开SVN日志
  2. 选择修订
  3. 双击文件...
  4. ...等待
  5. 查看更改
  6. 转到2或3或完成
  7. 第四步非常烦人。你知道解决方案吗?

6 个答案:

答案 0 :(得分:2)

为您的存储库购买更快的服务器?只是在开玩笑,但这个问题的原因可能在于Tortoise需要从服务器检索版本的时间。我不认为实际的差异需要花费很多时间。

答案 1 :(得分:1)

或许有趣的是,这是git在本地存储整个历史的原因之一。我怀疑切换到一个不同的版本控制系统对你的项目是可行的,但我想我应该提一下,这个功能可以让你更快地执行这样的差异。

答案 2 :(得分:0)

一些可能有助于您找出问题的问题:

  • 在4.步骤中等待多长时间?你在等待时屏幕上发生了什么?
  • 你的服务器的ping和带宽是多少?
  • 您使用的是什么差异效用?
  • 您差异的文件大小是多少?
  • 您差异的修订年龄?

我的结果:

  • 步骤4.大约需要10秒钟,其中大部分都在等待文件传输(我可以看到文件传输进度条)。
  • 我对服务器的ping是20,带宽约。 2 Mb / s
  • 我正在使用WinMerge。我记得一些其他的工具(例如DiffMerge)比较非常慢
  • 我正在测试的文件是23 000行/ 725 KB。
  • 这是在头部之前的最后修订版。对于较旧的修订版,第4步可能需要更长时间。

如果第4步需要大约10秒钟,那么我的设置并没有什么特别的错误,要么使用它,要么开始使用某种更分散的解决方案,因为80 ms ping是相当多(如欧洲 - 美国),你肯定会感到延迟。完全分布式系统的替代方案可能是使用SVN服务器复制并在靠近工作站的某个地方(在同一个房间,在同一个国家/地区,或者如果不可能,至少在同一个大陆上可能会有帮助)

答案 3 :(得分:0)

问题发生在我们的服务器上。我不完全理解它,但我们的管理员说了一些关于apache中的模块的东西,它通过PAM和SQL授权用户。经过一些改变后,它运作得相当好。

答案 4 :(得分:0)

从各种答案和评论中,看起来您的主要问题是中央服务器的延迟/带宽。 以下是我建议的几个线索:

  • 您的服务器是否通过http /服务 https或over svnserve / SSH + svnserve的。根据我对前期的经验 1.5 svn,svnserve方式比http / https方式快得多 多文件差异检索。如果我 回想起我的调查 时间,http服务使用了 需要往返的协议 每个差异的服务器,而 svnserve能够发送多个 一气呵成。
  • 您的客户是否可以同时请求多个差异? (我更具体地说是eclipse同步视图,它可以请求树的所有差异,然后让你在没有进一步往返的情况下查看文件。
  • 我建议的最后一条调查途径是在本地计算机上创建一个只读缓存,有多种方法可以解决这些问题:How to synchronize two Subversion repositories?

答案 5 :(得分:-2)

解决方案: