我在尝试使用 git svn 克隆 svn rep 时遇到以下错误:
eugene$ git svn clone https://my.site/svn/ here
Initialized empty Git repository in /Users/eugene/Documents/workspace/test/here/.git/
Bad URL passed to RA layer: Unrecognized URL scheme for 'https://my.site/svn' at /usr/local/git/lib/perl5/site_perl/Git/SVN.pm line 148.
svn checkout https://my.site/svn/
工作正常。
我重新运行了
cpan SVN::Core
安装正常,但仍然出现错误。
最佳答案
显然你有两个不同版本的 Subversion 二进制文件,其中一个版本不支持 http(s)://
协议(protocol)。
如果你运行 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
不使用相同的二进制文件。相反,它使用不支持 http(s)://协议(protocol)的 编译 的另一个 SVN 版本。可能有不同的原因:
如果
svn --version -q
打印出1.7.x
,很可能是您的 Git 安装太旧,无法使用此版本的 SVN。因此,您可能需要升级它,因为最新版本的git-svn
支持 SVN 1.7。如果您的默认 SVN 安装没有安装 Perl 绑定(bind),SVN::Core 将使用不支持 http(s) 的二进制文件作为后备。因此,您可能希望为 SVN 启用 Perl 绑定(bind)。
最后,由于 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
打印 /usr/local/bin/svn
,尝试使用 /usr/local/lib
作为 Perl 模块的库路径.
希望对您有所帮助。
关于git svn - 无法识别的 URL 方案错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13571944/