让SVN使用我的代理服务器

让SVN使用我的代理服务器,svn,version-control,proxy,Svn,Version Control,Proxy,我正试着获取Bro的源代码。如果我在浏览器中输入“”,我可以很好地看到存储库。但是,如果我尝试命令“svn co”,我会得到一个错误: svn: PROPFIND request failed on '/bro/trunk/bro' svn: PROPFIND of '/bro/trunk/bro': could not connect to server (http://svn.icir.org) 谷歌搜索似乎表明我应该更改~/.subversion/servers文件以包括 [global

我正试着获取Bro的源代码。如果我在浏览器中输入“”,我可以很好地看到存储库。但是,如果我尝试命令“svn co”,我会得到一个错误:

svn: PROPFIND request failed on '/bro/trunk/bro'
svn: PROPFIND of '/bro/trunk/bro': could not connect to server (http://svn.icir.org)
谷歌搜索似乎表明我应该更改~/.subversion/servers文件以包括

[global]
http-proxy-exceptions = ???
http-proxy-host = ???
http-proxy-port = ???
http-proxy-username = ???
http-proxy-password = ???
但我不知道使用什么实际值。我的浏览器设置为使用代理配置脚本,让我们假设它是“some.url.mycompany.com:port/file.name”


有没有想到在给定http代理的情况下,如何为svn代理推断正确的值?这是我需要IT人员为我设置的吗?

通常最简单的解决方法是浏览Fire Fox中的存储库…接受传递的SSL证书…并记住接受。然后,您可以通过SVN/Tortoise进行浏览,没有任何问题。

您可以查看代理配置文件吗?如果是这样,您应该能够确定使用哪个服务器和端口。如果您不需要登录即可访问internet,则可以将用户名和密码留空。例外情况也是如此

当我在一家使用代理配置文件的公司工作时,我能够浏览到该文件,查看过滤是如何处理的

WikiPedia的代理配置文件示例(尽管我确信这些文件因使用的代理软件而异):

如果存储库的url与任何规则都不匹配(因此将使用:PROXY-PROXY.example.com:8080;DIRECT):


听起来您正在工作场所尝试这一点,而您的网络管理员已经设置了一个代理服务器,允许web流量通过。除非您正在使用代理,否则所有其他通信都将被阻止(这就是为什么您在浏览器中设置代理以允许浏览器正常工作的原因)

还要记住,代理本身可能会进行进一步的过滤,因此,即使您设法将代理服务器用于您的SVN,该流量仍可能被阻止。这完全取决于网络上的安全性有多严格

在我看来,您最好让IT部门向您提供代理服务器的详细信息。他们甚至可能会给你一个不同的用于你的目的。或者他们可以调整防火墙策略,以允许您尝试通过的流量类型


试图从浏览器的代理设置中挖掘线索并使用它是成功或失败的。

那么代理配置脚本的内容是什么呢。我甚至没有想到在文本编辑器中加载配置脚本。它有一行可以清楚地标识要使用的服务器和端口,显然,您可以省去例外、用户名和密码行。感谢你指出这一点,Martin.PlexLuthor,使用这些值对你有用吗?我试过了,但a)它没有要求我接受证书,b)即使在firefox中浏览之后,SVN也不起作用。我不使用乌龟,所以这可能会有所不同。@Andrew他的问题中没有SSL。+1关于绕过代理。我遇到了一个类似的问题,代理破坏了Subversion,因为它不理解PROPFIND和其他SVN动词。我们可以通过使用https://绕过。问题中的URL没有https://功能,因此您需要要求IT部门允许您绕过代理。
function FindProxyForURL(url, host) {
  // our local URLs from the domains below example.com don't need a proxy:
  if (shExpMatch(url,"*.example.com/*"))                  {return "DIRECT";}
  if (shExpMatch(url, "*.example.com:*/*"))               {return "DIRECT";}

  // URLs within this network are accessed through 
  // port 8080 on fastproxy.example.com:
  if (isInNet(host, "10.0.0.0",  "255.255.248.0"))    {
     return "PROXY fastproxy.example.com:8080";
  }

  // All other requests go through port 8080 of proxy.example.com.
  // should that fail to respond, go directly to the WWW:
  return "PROXY proxy.example.com:8080; DIRECT";
}
[global]
# http-proxy-exceptions = ???
http-proxy-host = proxy.example.com
http-proxy-port = 8080
# http-proxy-username = ???
# http-proxy-password = ???