无法使用TortoiseSVN连接到代码库

19

我已经运行一个项目数月,使用相同的TortoiseSVN仓库,几乎没有什么麻烦,但是现在需要向项目添加另一个框,但似乎TSVN无法连接到仓库。这是我发现或尝试的东西:

我有两个客户端: "旧" 和 "新"...

  1. "旧" 电脑上设置和检出第二个文件夹正常。
  2. 在 "新" 电脑上通过Chrome / IE浏览器访问仓库也正常。
  3. 我的 "新" 电脑浏览器没有使用代理( "旧" 电脑也一样)。
  4. 我在两台电脑上都运行了 TSVN 1.7.4、Build 22459 - 64位
  5. 当我尝试从 "新" 电脑连接到仓库并使用仓库浏览器或检出到新文件夹时,出现以下错误消息:

    Unable to connect to a repository at URL 'https://(ip-address omitted)/usvn/svn/(project omitted)' OPTIONS of 'https://(ip-address omitted)/usvn/svn/(project omitted)': could not connect to server (ip-address omitted)

  6. 我已比较 "新" 和 "旧" 电脑之间所有 TSVN 设置,并且它们都匹配。

  7. 根据运行服务器的人员,没有使用证书
  8. "新" 电脑上的Windows防火墙已关闭
  9. 我从同一网络上运行 "旧" 和 "新" 电脑。但是,"旧" 通过WIFI连接,而 "新" 则通过有线连接。

我不知道还要检查什么,所以非常感谢任何提示。

谢谢


1
你可以检查一下Windows 7把你放在哪个网络区域(我假设你的电脑是Win7),也许你的网络区域是导致问题的原因。 - boto
1
使用svn命令行工具怎么样?这至少可以确定它是tortoisesvn还是subversion的一般问题。 - Barry
boto:我不太确定如何检查自己处于哪个网络区域(是的,我正在运行Win7)。该怎么做?我该如何知道该区域是否导致了问题? - Jonas Rembratt
10个回答

16

您需要确定这是TortoiseSVN、Subversion仓库还是网络连接的问题。

  • 首先,请检查您的URL。我从未使用User-Friendly SVN,所以我不知道它对Apache httpd配置做了什么。然而,多个仓库的标准Apache配置通常是http://<server>/svn/<module>而不是http://<server>/svn/usvn/<module>。那个/usvn/目录应该在那里吗?
    • 顺便问一下,Apache是如何配置的? User-Friendly SVN也这样做吗,还是只允许您配置存储库? 您是否正在使用Visual-SVN,还是有人手动配置了Apache httpd?
  • 如果URL正确,请尝试ping您的Subversion服务器。您能从Windows桌面ping通吗?如果不能,您有网络问题。由于某种原因,客户端桌面无法访问该IP地址。
  • 尝试打开浏览器,并将Subversion存储库的URL放入窗口中。这应该有效。如果有效,则问题可能出在TortoiseSVN上。下载一个命令行Subversion客户端,看看是否可以用它进行检出。
  • 尝试在另一个桌面上使用相同的URL。您能够从那里检出吗?如果可以,说明存在网络问题。

如果存在网络问题,它不会阻止普通的Web浏览器连接和浏览SVN存储库。假设SVN使用比Web浏览器更复杂的协议,可能仍然存在某种通信问题。但是我不知道可能是什么原因。 - Jonas Rembratt
2
@JonasRembratt - 当您在Subversion中使用http协议时,它是纯粹的http,因此如果普通网页可以通过网络从服务器传输到客户端,那么Apache httpd通过http也可以传输Subversion。这是人们使用http与Subversion的原因之一。是的,Subversion使用一种基于http的WebDav形式,但它全部都是http。(理论上,您可以设置一个可以读取数据包并过滤出WebDAV http数据包的路由器,但我从未见过这样做。) - David W.
如果我无法在浏览器中打开存储库的URL,即使我可以ping到该URL中找到的服务器,我也可以从我的工作场所连接到存储库,我们的管理员坚持认为一旦我连接到我们的VPN,URL应该是可达的(正如我能够访问其他内部站点所证明的那样),而我的同事在家里访问SVN存储库时没有任何问题?尽管您提供了有用的逐步指南,但我不确定从这些症状中得出什么结论。 - O. R. Mapper

15

这些提示在 Windows 7 中也对我有帮助。 - Emran Hussain
1
对我行得通,人们尝试在TortoiseSVN设置中清除身份验证数据。 - Ruslan Gerasimov

5
我发现将URL的前半部分替换为IP地址而不是单词对我有用。
例如使用:
http://111.11.11.111/svn/Directory

改为:

http://www.url.com/svn/Directory

+1 给这个星球上第一个展示示例的人。文档没有提到需要使用 http。 - GuidoG

3

我曾经遇到和你一样的问题。当我更换工作笔记本后,突然无法连接服务器了。奇怪的是,刚开始我只遇到了阻止我提交代码的错误,例如:

命令:提交 错误:提交失败(详细信息如下): 错误:'/svn//!svn/act/c511b853-23b4-db4a-8991-0bc689a63353' 的 MKACTIVITY: 错误:无法解析响应状态行(http://*.**.com) 已完成!

当我转移到另一个分支工作时(SVN服务器对于两个分支上的每个人而言都可以正常访问,前提是他们拥有适当的安全权限),我开始遇到以下错误:

命令:从http://.com/svn/fineos//trunk,版本号HEAD,完全递归,包括外部引用,检出 错误:无法连接到URL为“http://**.com/svn/fineos*/*/trunk”的存储库 错误:OPTIONS of 'http://*.com/svn/fineos*/*/trunk': 错误:无法连接到服务器(http://*.com) 已完成!

注意:在每种情况下,我都可以通过浏览器访问存储库,而且对于其他人而言也可以正常工作,因此显然不是网络或存储库问题。

解决方法是卸载Tortoise客户端,然后从C:\ Users \ user \ AppData的本地和漫游文件夹中删除Tortoise缓存文件夹。 另外,我还将Windows注册表中的TortoiseSVN节点重命名,以便找不到旧配置。 然后重新安装后,客户端成功连接到存储库。 我不确定是否需要执行两个步骤,也许只需要更改注册表就足够了,你可以自己再次确认一下。

很抱歉回复很长,但我在搜索了很久后没有看到针对这个问题的答案,所以希望这对不同的情况有所帮助。


1
这对我很有帮助,只需通过上下文菜单 => 设置 => 日志缓存 => 缓存的仓库 => 删除即可清除缓存。 - Philipp M

2

在执行svn更新时,我遇到了类似的问题。

解决方法是将 C:\Users\user\AppData\Roaming\TortoiseSVN 文件夹重命名为 TortoiseSVN_bkp 文件夹,然后再次尝试svn更新。这次我成功连接到了仓库并完成了更新。


1

1

请查看以下内容:

问题:在防火墙服务器上通过命令行调用SVN后,15秒内没有任何可见的操作,然后程序以以下错误退出:

svn:E170013:无法连接到URL为'SVN.REPOSITORY.REDACTED'的存储库

svn:E730054:运行上下文时出错:现有连接被远程主机强制关闭。

调查:对上述错误的互联网研究未发现任何相关信息。

进程跟踪(procmon)显示,在与SVN服务器进行SSL / TLS握手后,尝试连接到Akamai(云服务)服务器。进程跟踪中未显示服务器的主机名。反向DNS查找显示a184-51-112-88.deploy.static.akamaitechnologies.com或a184-51-112-80.deploy.static.akamaitechnologies.com作为主机名,并且IP地址为184.51.112.88或184.51.112.80(DNS缓存中有2个条目)。

数据包捕获工具(MMA)显示在与SVN服务器进行SSL / TLS握手后,尝试连接到主机名ctldl.windowsupdate.com。

The windows加密API试图连接到Windows Update以检索证书吊销信息(CRL-证书吊销列表)。 CRL检索的默认超时时间为15秒。 服务器身份验证的超时时间为10秒;由于15大于10,因此失败。
解决方案:互联网研究发现以下内容:(请参见下方图片)
解决方案1:减少CRL超时组策略->计算机配置-> Windows设置->安全设置->公钥策略->证书路径验证设置->网络检索-请参见下图。

https://subversion.open.collab.net/ds/viewMessage.do?dsForumId=4&dsMessageId=470698

support.microsoft.com/en-us/kb/2625048

blogs.technet.com/b/exchange/archive/2010/05/14/3409948.aspx

解决方案2:为CRL流量打开防火墙。

support.microsoft.com/en-us/kb/2677070

解决方案3:SVN命令行标志(未经测试)

serverfault.com/questions/716845/tortoise-svn-initial-connect-timeout - 使用替代的svn命令行标志解决方案。

附加信息:调试此问题特别困难。SVN 1.8禁用了支持Neon HTTP RA(存储库访问)库,转而使用Serf库,该库删除了客户端调试日志记录。[1] 此外,返回的SVN错误代码与svn_error_codes.h中给出的字符串不匹配。[2] 此外,SVN错误代码不能轻松地映射回其ENUM标签,这种情况下,SVN错误代码E170013映射到SVN_ERR_RA_CANNOT_CREATE_SESSION。

  1. stackoverflow.com/questions/8416989/is-it-possible-to-get-svn-client-debug-output
  2. people.apache.org/~brane/svndocs/capi/svn__error__codes_8h.html#ac8784565366c15a28d456c4997963660a044e5248bb3a652768e5eb3105d6f28f
  3. code.google.com/archive/p/serf/issues/172

建议的SVN变更:

  1. 对所有操作启用命令行的详细模式

  2. 将错误ENUM名称添加到stderr

  3. 为Serf库调试日志添加配置标志


0
在命令提示符中运行ipconfig /flushdns。 显然,有些人似乎认为我发表这个答案只是为了好玩。这就是为什么他们对我的回答投了反对票。也许解释一下会帮助他们。 当我使用“SVN Update”时,它说无法连接到SVN存储库,尽管我可以ping服务器。运行ipconfig /flushdns后,问题得到解决。

0

正如David W.所说:“首先,检查您的URL” - 我们的DNS条目更改了,破坏了所有svn仓库连接。按照Wes所说的使用IP连接起作用了 - (现在我们必须修复我们的DNS)


0

我曾经遇到过同样的问题。我试图使用包含域名的仓库URL进行svn checkout。我尝试使用IP地址代替域名进行连接,然后成功地进行了checkout。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接