显然,您有两个不同版本的 Subversion 二进制文件,其中一个版本不支持http(s)://
协议。
如果你运行svn --version
输出应该包括这样的东西:
* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
- handles 'http' scheme
- handles 'https' scheme
或者
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
- handles 'http' scheme
- handles 'https' scheme
问题是git-svn
不使用相同的二进制文件。相反,它使用另一个版本的 SVN,该版本编译时不支持 http(s):// 协议。这可能有不同的原因:
如果svn --version -q
prints 1.7.x
,很可能您的 Git 安装太旧而无法使用此版本的 SVN。因此,您可能希望将其升级为git-svn
支持 SVN 1.7 的最新版本。
如果您的默认 SVN 安装没有安装 Perl 绑定,则 SVN::Core 使用不支持 http(s) 的二进制文件作为后备。因此,您可能希望为 SVN 启用 Perl 绑定。
最后,由于 Perl 模块的一些错误配置,PATH/LD_LIBRARY_PATH 或 PERL5LIB(或任何git-svn
用于查找库的工具——我在这里不是专家),git-svn
只使用了无效的二进制文件。
解决问题的具体步骤取决于您如何管理软件包,例如使用 Homebrew 时看起来像这样:
$ brew remove svn
$ brew install --with-perl svn
或者
$ brew remove git
$ brew install git
或者使用 MacPorts 是这样的:
$ port install subversion-perlbindings
或者
$ port upgrade git-core +svn
之后尝试指定正确的库路径。例如,如果which svn
prints /usr/local/bin/svn
,尝试将/usr/local/lib
其用作 Perl 模块的库路径。
希望有帮助。