不能在代理后面执行git-svn fetch

时间:2013-02-26 17:34:38

标签: git svn git-svn

我正在尝试使用git-svn镜像一个svn repo。

我在做

git svn clone http://worldwind31.arc.nasa.gov/svn/trunk/WorldWind

我正在接受

Initialized empty Git repository in f:/gstest/WorldWind/.git/
RA layer request failed: PROPFIND request failed on '/svn/trunk/WorldWind': PROPFIND of '/svn/trunk/WorldWind': could not connect to server (http://worldwind31.arc.nasa.gov) at /usr/lib/perl5/site_perl/Git/SVN.pm line 148

如果我在不在代理服务器内的另一台计算机上执行相同操作,则可以。

我正在使用win7,并且已将$HTTP_PROXYhttp.proxy(git中的全局一个)和$HOME/AppData/Roaming/Subversion/servers设置为正确的代理。

在shell中执行svn checkout [repo adress]。 在shell中执行wget [repo adress]工作。 但不是git svn clone [repo adress]

有什么想法吗?我在这上面找到的大多数问题都指向了Subversion/servers文件,但现在我编辑了那个,问题仍然存在......:/

5 个答案:

答案 0 :(得分:30)

我遇到了同样的问题。

解决方案是找到正确的Subversion配置目录。至少在我的情况下,原生svn.exe使用文件C:\Users\MYUSER\AppData\Roaming\Subversion\servers,但git-svn使用~/.subversion/servers。我的意思是Git Bash shell中的这条路径~/.subversion/servers,其中~扩展到了正确的位置。以与~/.subversion/servers使用的另一个相同的方式修改svn.exe,然后git svn clone应该有效。

简而言之,关键是找到要编辑的正确配置文件,因为在Windows中可能有多个。

答案 1 :(得分:11)

要让svn在linux上的代理后面工作,请使用代理详细信息更新文件~/.subversion/servers

[global]
# http-proxy-exceptions = *.exception.com, www.internal-site.org
http-proxy-host = YOURPROXY.com
http-proxy-port = YOURPORT
# http-proxy-username = defaultusername
# http-proxy-password = defaultpassword
# http-compression = no
# http-auth-types = basic;digest;negotiate
# No http-timeout, so just use the builtin default.
# No neon-debug-mask, so neon debugging is disabled.
# ssl-authority-files = /path/to/CAcert.pem;/path/to/CAcert2.pem

我猜在Windows上有类似的配置......

答案 2 :(得分:5)

通常,仅环境变量:

  • HTTP_PROXY
  • HTTPS_PROXY
  • NO_PROXY

足以使git或git-svn正常工作。

但是得到我的是确切的网址 例如:

  • HTTP_PROXY=wwww.myproxy.company:8080无效,但
  • HTTP_PROXY=http://wwww.myproxy.company:8080会奏效。

HTTPS_PROXY使用相同的内容,意思是相同的 http 地址(我首先尝试为HTTPS_PROXY添加https网址,但这不是它的工作方式)< / p>

当然,如果您需要进行身份验证,您可以(至少出于测试目的)在其中添加您的登录名/密码:

HTTP_PROXY=http://myLogin:myPassword@wwww.myproxy.company:8080

它也有助于设置NO_PROXYlocalhost,*.company


因此,这个答案背后的主要内容是“仔细检查您使用的确切网址”(并使用简单的curl http://www.google.comwget进行测试,可以使用msysgit包或来自{ {3}})

答案 3 :(得分:0)

在C:\ Users \ YOU \ .subversion \ servers中查看设置。您正在寻找此文件中的内容,例如......

[global]
# http-proxy-exceptions = *.exception.com, www.internal-site.org
http-proxy-host = 127.0.0.1
http-proxy-port = 3128

...这些设置适用于CNTLM。取消注释我上面没有注释的行和&amp;把你自己的详细信息放进去。有密码字段等。修复了我从Sourceforge获取东西的问题。是的,Sourceforge仍在那里。

此外,CNTLM非常适合通过NTLM,最前沿等。运行Fiddler2&amp;将规则设置为“自动验证”为true以获取CNTLM未命中的任何身份验证。 Chrome更新是Fiddler为我修复的一件事。

答案 4 :(得分:0)

对我而言,解决方案只是更改配置中的网址。 因为我无法访问现有的。 要检查我只是使用我的浏览器访问了repo url。 在使用禁用网址的情况下,我得到了'403 Forbidden'

相关问题