19

我正在尝试使用 git-svn 镜像 svn 存储库。

我正在做

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正确的代理。

在shellsvn checkout [repo adress]中工作。在shellwget [repo adress]中工作。但不是git svn clone [repo adress]

有任何想法吗?我发现的大多数问题都指向该Subversion/servers文件,但现在我已经编辑了该文件,但问题仍然存在......:/

4

5 回答 5

30

我有同样的问题。

解决方案是找到正确的 Subversion 配置目录。至少在我的情况下,本机svn.exe使用文件C:\Users\MYUSER\AppData\Roaming\Subversion\servers,但git-svn使用~/.subversion/servers. 我的意思~/.subversion/servers是 Git Bash shell 中的这条路径,它~被扩展到正确的位置。~/.subversion/servers以与使用的另一个相同的方式进行编辑svn.exe,然后git svn clone应该可以工作。

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

于 2013-03-16T14:00:02.497 回答
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上有类似的配置......

于 2013-02-27T12:20:23.640 回答
5

通常,单独的环境变量:

  • HTTP_PROXY
  • HTTPS_PROXY
  • NO_PROXY

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

但让我明白的是要使用的确切网址。
例如:

  • HTTP_PROXY=wwww.myproxy.company:8080不会工作,但是
  • HTTP_PROXY=http://wwww.myproxy.company:8080将工作。

使用相同的 for HTTPS_PROXY,表示相同的http地址(我尝试首先为 放置一个 https url HTTPS_PROXY,但这不是它的工作方式)

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

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

它也有助于设置NO_PROXY一个:localhost,*.company.


所以这个答案背后的要点是“仔细检查你正在使用的确切网址”(并用一个简单curl http://www.google.com的 ,wget或者来自 msysgit 包或来自 的测试它Gnu On Windows

于 2013-03-02T00:29:29.423 回答
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。取消注释我上面未注释的行并输入您自己的详细信息。有密码等字段。为我从 Sourceforge 获取内容修复了它。是的,Sourceforge 还在。

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

于 2013-03-27T03:23:39.900 回答
0

对我来说,解决方案只是更改config中的url。因为我无法访问现有的。为了检查,我只是使用我的浏览器访问了 repo url。如果使用禁止的网址,我会得到'403 Forbidden'

于 2013-10-15T09:00:57.593 回答