当尝试通过代理服务器连接时,Windows版本的TortoiseHg会显示“SSL错误:未知协议”。

9

场景:

你在Windows系统下,使用代理服务器。你已经配置了TortoiseHg使用代理服务器,即输入了服务器名称/IP和端口号。你可以使用Internet Explorer连接到互联网。但是当你尝试执行pull或push操作,会产生错误消息“SSL错误:未知协议”。

(我打算自己回答这个问题。)


假设网络浏览器已经配置好了代理,你可以尝试我想出来的“黑客”方法。http://stackoverflow.com/questions/11449133/how-to-clone-a-codeplex-mercurial-repository-behind-a-proxy - chronodekar
2个回答

6
原因是Internet Explorer正在使用自动代理配置脚本,而TortoiseHg正在使用特定的代理服务器。IE没有使用相同的代理服务器,因为自动脚本选择了不同的代理服务器。
解决方法是在IE的连接设置中输入TortoiseHg使用的代理服务器,或者找出您目前正在使用的代理服务器,并告诉TortoiseHg使用该代理服务器。您可能需要在连接TortoiseHg之前浏览外部网站。
您可以通过使用IE浏览并运行DOS命令来确定使用哪个代理服务器:
netstat

您会在端口80或8080(常见的代理服务器端口)上的“外部地址”列中看到一些连接。


1
步骤看起来很简单,但对我在Windows 7上面有一个NTLM代理的情况下不起作用。 - Jeff B
这个简单的命令让我终于可以通过我的工作代理克隆项目了!我没有遇到同样的问题,实际上我的问题是Hg根本没有尝试使用代理,但我不知道如何找出实际使用的代理。只需在我的Hg配置中输入来自netstat的代理名称和端口即可让我克隆。谢谢! - Ben
@James,TortoiseHg 代理服务器在哪里保存? - ctrl-alt-delete
@toasteez 在 TortoiseHg Workbench 中,转到“文件”、“设置”。在代理页面中,输入主机地址。 - James McLachlan

0

除了您的优秀提示外,我还提供一个...

如果您的公司使用自动代理脚本,则用于浏览网页的代理可能不是您需要的Mercurial代理。因此,如果您尝试通过netstat找到代理并在tortoise中出现“getaddrinfo失败”错误,则请尝试以下操作...

  1. 获取代理脚本地址:IE->配置->Internet选项->连接->LAN设置。从“地址”框中复制URL。
  2. 浏览到该地址并将文件保存到磁盘。
  3. 在记事本中打开该文件并滚动到末尾,它可能以类似于--return "PROXY ipaddresshere:port"的内容结尾,这就是您需要的IP和端口。
  4. 将该IP和端口插入到tortoise中:右键单击存储库,单击设置,单击代理,在主机字段中输入IP和端口。通常我不需要用户名和密码,所以先尝试不带它。

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