【问题标题】:Make SVN use my proxy server让 SVN 使用我的代理服务器
【发布时间】:2009-07-10 18:25:41
【问题描述】:

我正在尝试获取 Bro 的源代码。如果我在浏览器中输入“http://svn.icir.org/bro/trunk/bro/”,我可以很好地看到存储库。但是,如果我尝试命令“svn co http://svn.icir.org/bro/trunk/bro”,我会收到错误消息:

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 人员为我设置的东西吗?

【问题讨论】:

  • 那么代理配置脚本的内容是什么?
  • 呃。我什至没有想到在文本编辑器中加载配置脚本。它有一行清楚地标识要使用的服务器和端口,显然您可以省略例外、用户名和密码行。谢谢你指出这一点,马丁。
  • PlexLuthor,使用这些值对你有用吗?

标签: svn version-control proxy


【解决方案1】:

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

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

来自 WikiPedia 的示例代理配置文件(尽管我确信这些文件基于所使用的代理软件差异很大):

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";
}

如果存储库的 url 不匹配任何规则(因此将使用: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 = ???

【讨论】:

    【解决方案2】:

    听起来您正在工作场所尝试此操作,并且您的网络管理员已设置代理服务器以允许网络流量通过。除非您使用代理,否则所有其他流量都会被阻止(这就是您在浏览器中设置代理以允许浏览器运行的原因)

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

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

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

    【讨论】:

    • +1 绕过代理。我有一个类似的问题,代理破坏了 Subversion,因为它不理解 PROPFIND 和其他 SVN 动词。我们能够使用 https:// 绕过。问题中的 URL 没有 https://,因此您需要让您的 IT 部门让您绕过代理。
    【解决方案3】:

    通常解决此问题的最简单方法是浏览到 Fire Fox 中的存储库...接受通过的 SSL 证书...并记住该接受。然后你就可以毫无问题地通过SVN/Tortoise浏览了。

    【讨论】:

    • 我试过了,但是a)它没有要求我接受证书,b)即使在Firefox中浏览后,SVN也无法工作。我不使用 Tortoise,所以这可能会有所作为。
    • @Andrew 他的问题中没有 SSL。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    相关资源
    最近更新 更多