我在尝试使用 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
还有几点需要注意:
- 我在 Windows 7 x64 上使用 msysgit 1.7.9.0。我还安装了 Subversion 1.7.1 命令行客户端和 TortoiseSVN 1.7.1。
- 我通过代理服务器连接,我通过 HTTP_PROXY 环境变量和
git config http.proxy
指定了它. - 我能够在同一台机器上通过 HTTPS 毫无问题地克隆 Github 存储库。
- 普通的 Subversion 客户端检查同一个项目没有问题。我也已经能够使用 Mercurial 和 hgsubversion 成功克隆它,尽管它确实无法识别服务器的 SSL 证书,所以我必须在我的 mercurial.ini 文件中明确指定它。因此,我正在使用
git config http.sslVerify=false
.但是,这没有任何区别。 - 使用 svnsync(例如建议的 here)等单向解决方法不是一种选择。
还有什么我没试过的吗?
最佳答案
为了扩展其他两个答案(并解释为什么你看到你所看到的),git svn
(作为 msysgit 的一部分)是针对 svn 1.4.6 构建的:
C:\> git svn --version
git-svn version 1.7.7.1.msysgit.0 (svn 1.4.6)
请注意,1.4.6 是……嗯……老了。 (以及 2009 年的 hasn't even been supported since 1.6 was released。)
msysgit 的 git-svn
不 使用您安装的 subversion - 因此能够使用您安装的 svn
checkout (不幸的是)不是指示性的的问题。
有some bug reports关于升级到更新的 msysgit 颠覆,但似乎那些还没有实现。
你试过cygwin的git-svn
吗?
关于git - 通过代理服务器通过 HTTPS 使用 git-svn 时出现未知协议(protocol)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9841547/