Windows 上的 svn 客户端非常慢,Linux 上的 svn 客户端非常快

问题描述 投票:0回答:3

我被迫使用位于我们 Windows 域中的 Visual-svn-server。问题是使用windows客户端速度超级慢。奇怪的是,同一个存储库在 Linux 客户端上速度非常快。差别就像 3 秒和 90 秒一样。我知道应该有人修复服务器,而不是我尝试修复客户端,但我没有改变这样做。

因此,为了调试这个问题,我使用wireshark进行了一些包捕获,看起来就像Windows一样,在执行“svn up”(在最新存储库上)时,在与实际的svn服务器再次对话之前会进行大量的ldap协商。这需要时间。 Linux svn 客户端在执行“svn up”时不会执行任何 ldap 调用。问题不在我的机器上,而是在我所有同事的 Windows 客户端上。

我尝试使用配置选项 http-auth-types 强制 svn 客户端进行“基本”身份验证(http://svnbook.red-bean.com/en/1.7/svn.advanced.confarea.html),但是它没有帮助。我认为这将是基本的,没有 ldap,http-basic-auth。我能够确认该设置已包含在内,因为将其设置为“摘要”表示身份验证方法不可用。但即使这样也需要大约 60 秒,所以我的猜测是它在尝试进行身份验证之前做了 ldap-wacko 的事情。

我使用的 subversion 客户端是来自 tortoise svn 官方版本的 1.8 系列。我也尝试过 slicksvn 客户端,它确实有同样的问题。 svn 版本显示 ra_serf 正在处理 https 请求,我的存储库是位于

https://my_server_intra_dns_name/

的 Visual-svn 服务器

当用浏览器打开地址时,它又很快了,所以问题不应该是dns或类似的问题。

我是 Linux 爱好者,所以我对 Windows 有点迷茫,但是有人知道这里发生了什么吗?

----编辑---- 我还在 Windows 主机上使用了 Linux 作为来宾操作系统,在 Linux 中执行 svn up 大约需要 3 秒,与本机 Windows 'svn.exe up' 相比,需要花费一分钟!

windows svn https tortoisesvn visualsvn-server
3个回答
2
投票

如果 Windows 计算机与 Internet 的连接有限,那么您可能会注意到通过 HTTPS 对远程存储库运行 Subversion 客户端命令时的延迟。

使用流量分析器,您可以注意到,当 Windows 尝试访问

ctldl.windowsupdate.com
并超时时,就会发生延迟。 Windows 尝试访问
ctldl.windowsupdate.com
以检查 证书信任列表(即证书吊销列表)。由于互联网连接有限,Windows 可能无法访问它,从而导致这些延迟。

如果不是您的情况,那么我建议联系 VisualSVN 的支持团队进行调查


0
投票

就我而言,这是由于 Windows 代理设置 - 您在 IE 中设置的(我使用 TortoiseSVN 客户端,Visual SVN 服务器设置为使用基本身份验证)。

在我根据 IE 代理设置(对我来说是自动的,但对你来说可能有所不同)设置后,初始延迟消失了。

即使 svn 服务器位于本地 LAN 上,并且我已经使用 Wireshark 检查流量是否通过代理,它还是有帮助的。在乌龟中我禁用了代理。为什么它对我的问题有帮助 - 不知道。

我最初的延迟是 11-13 秒。现在几乎没有。

而且我没有使用 ssh 客户端。

使用浏览器访问 SVN 服务器的 http(s) 位置:IE、Fireofx 等等,如果响应很快,那么很可能是 svn 客户端问题,或者由于一些类似的设置(类似于您的浏览器设置)。

例如 IE 很慢(IE 之前仅设置为本地连接),Firefox(具有正确的代理设置)则正常 - 并且 SVN 服务器是本地的(对我来说听起来像是某种网络/防火墙/路由问题,但代理设置对我有帮助)。


0
投票

在我的例子中,修复是编辑我的 C:\windows\system32\drivers tc\hosts 文件,为我的 SVN 服务器添加一个条目。

SVN 正在做一些奇怪的 DNS 事情,这些事情在 Windows 上无法正常工作,因为它需要很长时间。 这似乎绕过了。

© www.soinside.com 2019 - 2024. All rights reserved.