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

bja*_*ven 19 svn git git-svn

我正在尝试使用git-svn镜像svn repo.

我正在做

git svn clone http://worldwind31.arc.nasa.gov/svn/trunk/WorldWind
Run Code Online (Sandbox Code Playgroud)

而且我得到了

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
Run Code Online (Sandbox Code Playgroud)

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

我在win7的,我已经设定 $HTTP_PROXY,http.proxy(全球一个在GIT),并$HOME/AppData/Roaming/Subversion/servers以正确的代理.

这样做svn checkout [repo adress]在外壳的作品.这样做wget [repo adress]在外壳的作品.但不是git svn clone [repo adress]

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

Sto*_*ica 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中可能有多个配置文件.


Fre*_*ihl 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
Run Code Online (Sandbox Code Playgroud)

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

  • 在Windows上要记住的关键事项:1)更新[global]部分而不是[group1]或[othergroup]等... 2)更新C:\ Users \ USERACCOUNTNAME \ .subversion和C:\ Users \ local_admin \ AppData \漫游\ Subversion(至少将在Windows 7上运行)。 (2认同)

Von*_*onC 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网址HTTPS_PROXY,但这不是它的工作原理)

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

HTTP_PROXY=http://myLogin:myPassword@wwww.myproxy.company:8080
Run Code Online (Sandbox Code Playgroud)

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


所以这个答案背后的主要观点是"仔细检查你正在使用的确切网址"(并用一个简单的curl http://www.google.com,或者用wgetmsysgit包或者从中测试它Gnu On Windows)