【问题标题】:git svn - Unrecognized URL scheme errorgit svn - 无法识别的 URL 方案错误
【发布时间】:2012-11-14 08:22:02
【问题描述】:

我在尝试使用 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

并安装完成,但仍然出现错误。

【问题讨论】:

  • 你有什么理由在你的git svn clone 中使用 URL https://my.site/svn/ 而不是在你的 svn 命令中使用https://my.site/svn/rp 吗?您是否通过 git upgrade 更改了错误(即,它现在是更新 2 中的错误,还是您仍然收到原始错误)?您的 svn 存储库是否具有标准的分支和标记约定(主干/分支/标签)?
  • 不,没有关于 URL 的具体原因。使用 git upgrade 我不再收到 SSL 握手错误,而是出现无法识别的 URL 方案错误。 svn repo 没有标准的分支和标记,只有主干文件夹。
  • 我已更新说明,以免与过时的问题混淆。
  • 谢谢。我想svn checkout https://my.site/svn/ 可以吗?即,https://my.site/svn/ 是一个有效的回购?
  • 是的,svn checkout my.site/svn 工作正常。这是一个有效的回购。

标签: git svn git-svn


【解决方案1】:

显然您有两个不同版本的 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):// 协议。这可能有不同的原因:

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

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

  3. 1234563 /p>

解决问题的具体步骤取决于您管理软件包的方式,例如使用 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 模块的库路径。

希望对您有所帮助。

【讨论】:

  • Possibly related: 如果你在 OS X 上使用 homebrew,那么确保你安装的是包 svn,而不是 subversion。
  • 太棒了,git svn --version 的输出是“git-svn version 2.10.1 (svn 1.8.11)”,所以我重新安装 git 通过brew reinstall git 解决了我的问题,现在是“git版本”打印 git-svn 版本 2.17.0 (svn 1.7.20)
【解决方案2】:

可以吗:git svn --version

看到这个问题:How to upgrade the SVN version used by git-svn

更新

请注意,此答案是针对问题的发布者原始版本,其中问题可能与在git-svn 中使用旧版本的svn 有关。发布者此后升级了 git,确定不是原因,并调整了问题以反映这一点。

【讨论】:

  • bash-3.2$ git svn --version git-svn 版本 1.7.7.5 (Apple Git-26) (svn 1.6.17)
  • 它旧了吗?会不会有问题?
  • 我没想到,但你可以尝试安装 git 1.8,因为它现在支持 svn 1.7。这可能解决您的问题。
  • 您的问题与此类似? git.661346.n2.nabble.com/…
【解决方案3】:

这可能与 SVN::Core perl 库或 XCode 命令行工具更新不兼容有关。

您可以尝试在本地升级它:

cpan SVN::Core

或全局:

sudo cpan SVN::Core

或者如果您使用的是 brew,请尝试通过 brew 安装它:

brew install --perl subversion
brew reinstall git

如果还是不行,请检查我们的 PERL5LIB 变量:

echo $PERL5LIB

如果它被设置为您不想要的东西,您可以取消设置以进行测试:

unset PERL5LIB

如果有帮助,请找到已定义的文件(例如 ~/.profile)并将其从那里删除。


如果您有多个 perl 库,您可以在 ~/.profile 文件中指定 PERL5LIB 环境变量,例如

export PERL5LIB="/Users/my_user/perl5/lib/perl5:/Library/Perl/5.16:/Applications/Xcode.app/Contents/Developer/Library/Perl/5.16"

有时问题只是在于将 PERL5LIB 指向旧版本的 perl 库,例如5.12 而不是 5.16。

查找所有 SVN::Core 实例的简单方法,您可以尝试:

sudo /usr/libexec/locate.updatedb # Only for the first time
locate Core.pm | grep Core.pm$

相关文章:

【讨论】:

    【解决方案4】:

    当我在将 MacOS 升级到 Mojave 后再次遇到此错误时,我想我也可以像以前 brew reinstall git 所做的那样,就像我评论接受的答案一样。

    但不幸的是我失败了。我搜索的任何其他信息都无法为我提供帮助。所以我通过截断安装工件来完全卸载 git。

    $ cd /usr/local
    $ sudo rm -fr git
    $ sudo rm -fr /usr/bin/git*
    

    现在通过 brew 安装最新版本的 git/git-svn:

    $ brew install git
    $ git --version
     git version 2.19.2
    $ brew install git-svn
    

    安装完成后,我进入我的项目的根目录并检查它是否可以工作:

    $ cd <my project's root dir>
    $ git svn rebase
     here output the repository updates
    

    git-svn 拉取信息最终显示给我,这意味着它再次工作。

    现在版本信息是:

    $ git --version
     git-svn version 2.19.2 (svn 1.10.0)
    

    之前是:

    $ git svn --version
    git-svn version 2.19.0 (svn 1.8.11)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-12
      • 2011-04-06
      • 1970-01-01
      • 2021-04-15
      • 1970-01-01
      • 1970-01-01
      • 2017-02-11
      • 1970-01-01
      相关资源
      最近更新 更多