代码之家  ›  专栏  ›  技术社区  ›  Michal Czardybon

慢差分(乌龟)SVN的解决方案?

  •  4
  • Michal Czardybon  · 技术社区  · 16 年前

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

    1. 打开SVN日志
    2. 选择修订
    3. 双击文件…
    4. 等待…
    5. 看到变化
    6. 转到2或3或完成

    第四步很烦人。你知道解决这个问题的办法吗?

    6 回复  |  直到 16 年前
        1
  •  2
  •   nfechner    16 年前

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

        2
  •  1
  •   wds    16 年前

    值得注意的是,也许这就是Git在本地存储整个历史的原因之一。我怀疑切换到不同的版本控制系统对于您的项目是可行的,但是我想我应该提到这个特性允许您以更快的速度执行类似的差异。

        3
  •  0
  •   Suma    16 年前

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

    • 四号车厢等了多久。步骤?你在等的时候屏幕上发生了什么?
    • 服务器的ping和带宽是多少?
    • 您使用的是什么diff实用程序?
    • 您的文件大小不同?
    • 你的修订版本有多大?

    我的结果是:

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

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

        4
  •  0
  •   Michal Czardybon    16 年前

    问题出在我们的服务器上。我不完全理解,但是我们的管理员提到了Apache中的一个模块,它通过pam和sql授权用户使用。经过一些改动,它工作得相当好。

        5
  •  0
  •   Community Mohan Dere    9 年前

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

    • 你的服务器是通过HTTP服务的吗/ HTTPS或通过SVNSEE/ SSH+SvService。以我在Pre的经验 1.5 SVN,SVN方式比HTTP/HTTPS方式快得多 多文件差异检索。如果我 正确回忆我的调查 时间,HTTP服务使用 需要往返的协议 每个diff的服务器,而 SVNSEE能够发送多个 一次完成的差异。
    • 您的客户机是否能够同时请求多个差异?(我更具体地说是Eclipse同步视图,它能够为一棵树请求所有的差异,然后让您无需进一步的往返就可以查看文件。
    • 我建议的最后一种调查方法是在本地计算机上创建只读缓存,有多种方法可以做到这一点,我们已经在以下方面进行了探讨: How to synchronize two Subversion repositories?
        6
  •  -2
  •   yfeldblum    16 年前
    推荐文章