通过代理服务器在HTTPS上使用git-svn时出现未知协议错误

jam*_*kes 5 svn git ssl git-svn

我一直在尝试使用git-svn通过HTTPS访问Subversion存储库时遇到一些问题.

当我键入时git svn init --username=<my username> --trunk=https://<host>/<project>/trunk,我收到以下错误消息:

RA layer request failed: PROPFIND request failed on '/<project>/trunk':
PROPFIND of '/<project>/trunk': SSL negotiation failed: SSL error: unknown
protocol (https://<host>) at C:\Program Files (x86)\Git/libexec/git-core\git-svn
line 2299
Run Code Online (Sandbox Code Playgroud)

还有几点需要注意:

  1. 我在Windows 7 x64上使用msysgit 1.7.9.0.我还安装了Subversion 1.7.1命令行客户端和TortoiseSVN 1.7.1.
  2. 我通过代理服务器连接,我已通过HTTP_PROXY环境变量和git config http.proxy.
  3. 我可以在同一台机器上通过HTTPS克隆Github存储库而不会出现问题.
  4. 普通的Subversion客户端可以毫无问题地检出同一个项目.我也能够使用Mercurial和hgsubversion成功克隆它,虽然它确实无法识别服务器的SSL证书,所以我必须在我的mercurial.ini文件中明确指定它.因此,我正在使用git config http.sslVerify=false.但是,这没有任何区别.
  5. 单向解决方法,例如使用svnsync(例如此处建议)不是一种选择.

还有其他我没试过的东西吗?

Edw*_*son 9

为了扩展其他两个答案(并解释为什么你看到你所看到的),git svn(作为msysgit的一部分)是针对svn 1.4.6构建的:

C:\> git svn --version
git-svn version 1.7.7.1.msysgit.0 (svn 1.4.6)
Run Code Online (Sandbox Code Playgroud)

请注意,1.4.6是......好吧...... (自从 2009 年发布1.6以来,甚至没有得到支持.)

msysgit的git-svn使用你的颠覆安装-所以能够使用安装结帐svn是(不幸)不表示问题.

一些关于升级到msysgit的新版subversion的错误报告,但似乎还没有实现.

你试过cygwin的git-svn吗?


jam*_*kes 0

我终于发现了如何让它发挥作用。答案来自这个线程

当您通过代理连接到 Subversion 服务器时,git-svn 不会使用 .gitconfig 中的代理设置,也不会使用您在 TortoiseSVN 中配置的设置。相反,它看起来在[global]部分%USERPROFILE%\.subversion\servers

将我们的代理服务器设置添加到此文件中允许我连接到外部 Subversion 服务器。