Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance (乌龟)SVN中缓慢差异的解决方案?_Performance_Svn_Diff - Fatal编程技术网

Performance (乌龟)SVN中缓慢差异的解决方案?

Performance (乌龟)SVN中缓慢差异的解决方案?,performance,svn,diff,Performance,Svn,Diff,我经常通过以下方式进行代码审查: 打开SVN日志 选择一个修订 双击一个文件 …等等 看到变化了吗 转到2或3或完成 第四步很烦人。您知道解决方案吗?为您的存储库购买更快的服务器?只是开玩笑,但这个问题的原因可能在于乌龟需要从服务器检索版本的时间。我不认为实际的差异需要很多时间。有趣的是,也许这是git将整个历史存储在本地的原因之一。我怀疑切换到不同的版本控制系统对您的项目是否可行,但我想我应该提到,此功能允许您更快地执行类似的差异。一些问题可能会帮助您找出错误: 4号车厢等了多长时间。步当您

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

  • 打开SVN日志
  • 选择一个修订
  • 双击一个文件
  • …等等
  • 看到变化了吗
  • 转到2或3或完成

  • 第四步很烦人。您知道解决方案吗?

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

    有趣的是,也许这是git将整个历史存储在本地的原因之一。我怀疑切换到不同的版本控制系统对您的项目是否可行,但我想我应该提到,此功能允许您更快地执行类似的差异。

    一些问题可能会帮助您找出错误:

    • 4号车厢等了多长时间。步当您等待时,屏幕上发生了什么
    • 到服务器的ping和带宽是多少
    • 您使用的是什么不同的实用程序
    • 您要区分的文件大小是多少
    • 您要差异化的版本有多大
    我的结果:

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

    如果第4步对你来说需要10秒钟,那么我会说你的设置没有什么特别的问题,你要么接受它,要么开始使用某种更分布式的解决方案,因为80毫秒的ping非常多(像欧洲-美国),你肯定会感觉到延迟。完全分布式系统的另一种替代方法是使用SVN服务器复制,并在离您的工作站较近的地方安装一台复制服务器(在同一个房间、同一个国家,或者如果不可能,至少在同一个大陆上可能会有所帮助)。

    问题出在我们的服务器上。我不完全理解,但是我们的管理员说了一些关于apache中的一个模块的事情,该模块通过PAM和SQL授权给用户。经过一些更改后,它运行得相当好。

    从各种回答和评论来看,您的主要问题似乎是集中式服务器的延迟/带宽。 以下是我建议的几条线索:

    • 您的服务器是否通过http提供服务/ https或通过SVN服务/ ssh+svn服务。根据我在pre上的经验 1.5 svn,svn服务方式比http/https方式快得多 多文件差异检索。如果我 正确地回忆起我在 此时,http服务使用 需要往返到的协议 每个差异的服务器,而 SVN服务能够发送多个 一气呵成
    • 您的客户是否能够同时请求多个差异?(我更具体地考虑eclipse synchronize视图,它能够请求树的所有差异,然后让您无需进一步往返即可查看文件
    • 我建议的最后一种调查方法是在本地计算机上创建只读缓存,有多种方法可以实现此目的,这些方法已在中探讨过:
    解决方案:


    您的SVN服务器是远程的吗?本地网络?本地机器?当我在场外工作时,服务器是远程的。但是,当我在本地工作时,情况不会有太大变化。我们在这里面临相同的问题。要比较大小为5 kB的文件,请使用diff命令(上面的步骤3)正在传输2.4 MB的数据。我们的服务器是远程的,但为什么它要传输超过文件大小100倍的数据?URL中有https,这可能是原因(加密)?我大约2年前使用了SVN,但速度没有那么慢。最近的版本中是否出现了问题。我的SVN版本是-TortoiseSVN 1.11.0。是的,问题在于与服务器的通信。但解决方案是什么?过于简化的答案:没有。更复杂的答案:这取决于您与远程服务器的连接。您使用了吗一个VPN,可能会减慢连接速度?你的互联网连接速度慢吗?服务器上的网络/处理器/io负载有多高?你需要首先找出瓶颈来解决它。我想可能会有一些解决方案,使用某种离线缓存不同的结果。-步骤4。大约需要10秒;我明白了“获取信息…”和“获取文件”"-我对服务器的ping是80毫秒-我使用标准的Diff,它与TortoiseSVN一起提供-文件通常是100-1000 loc-我通常检查头部附近的文件-你在进度窗口中看到了什么传输速率?知道你的连接和服务器到internet的连接是否合理?OP没有说明他是否愿意是否切换到不同的版本控制系统。如果您要进行否决表决,请至少留下评论…svk也在本地存储历史记录,同时在svn之上构建并提供兼容性。您可以详细说明解决方案是什么吗?我面临着同一问题的真正困难