尝试使用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.
Run Code Online (Sandbox Code Playgroud)
svn checkout https://my.site/svn/ 工作得很好.
我重新跑了
cpan SVN::Core
Run Code Online (Sandbox Code Playgroud)
并安装完成,但仍然得到错误.
vad*_*hev 18
显然,您有两个不同版本的Subversion二进制文件,其中一个版本不支持http(s)://协议.
如果你运行svn --version输出应该包括这样的东西:
* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
- handles 'http' scheme
- handles 'https' scheme
Run Code Online (Sandbox Code Playgroud)
要么
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
- handles 'http' scheme
- handles 'https' scheme
Run Code Online (Sandbox Code Playgroud)
问题是git-svn不使用相同的二进制文件.相反,它使用另一个版本的SVN,编译时不支持http(s)://协议.可能有不同的原因:
如果svn --version -q打印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
Run Code Online (Sandbox Code Playgroud)
要么
$ brew remove git
$ brew install git
Run Code Online (Sandbox Code Playgroud)
或者使用MacPorts这样的东西:
$ port install subversion-perlbindings
Run Code Online (Sandbox Code Playgroud)
要么
$ port upgrade git-core +svn
Run Code Online (Sandbox Code Playgroud)
之后尝试指定正确的库路径.例如,如果which svn打印/usr/local/bin/svn,请尝试/usr/local/lib用作Perl模块的库路径.
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
13144 次 |
| 最近记录: |