git svn - 无法识别的 URL 方案错误

标签 git svn git-svn

我在尝试使用 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 版本。可能有不同的原因:

  1. 如果 svn --version -q 打印出 1.7.x,很可能是您的 Git 安装太旧,无法使用此版本的 SVN。因此,您可能需要升级它,因为最新版本的 git-svn 支持 SVN 1.7。

  2. 如果您的默认 SVN 安装没有安装 Perl 绑定(bind),SVN::Core 将使用不支持 http(s) 的二进制文件作为后备。因此,您可能希望为 SVN 启用 Perl 绑定(bind)。

  3. 最后,由于 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/

相关文章:

Apache Ivy 术语和歧义

svn - 显示日志未显示所有修订

linux - yum 安装 subversion1.4.3

git - git pull --rebase、git rebase 和 git merge 的区别

svn - 使用 svn 元数据克隆 git-svn 存储库

node.js - Npm:无法调用未定义的方法 'charAt'

Git 更改丢失 - 为什么?

iphone - SVN 在 Mountain Lion 上提交 txn-current-lock

GIT-删除旧的reflog条目

git - 如何让 git-diff 忽略所有空白更改但领先一个?