14

gitsvnを使用してsvnrepのクローンを作成しようとすると、次のエラーが発生します。

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

インストールは正常に終了しましたが、それでもエラーが発生します。

4

4 に答える 4

18

どうやらあなたはSubversionバイナリの2つの異なるバージョンを持っていて、それらのバージョンの1つは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、同じバイナリを使用しないことです。代わりに、http(s)://プロトコルをサポートせずにコンパイルされた別のバージョンのSVNを使用します。それにはさまざまな理由が考えられます。

  1. svn --version -q印刷する場合は1.7.x、Gitインストールが古すぎてこのバージョンのSVNを使用できない可能性があります。git-svnそのため、 SVN1.7をサポートする最新バージョンとしてアップグレードすることをお勧めします。

  2. デフォルトのSVNインストールにPerlバインディングがインストールされていない場合、SVN ::Coreはフォールバックとしてhttp(s)サポートのないバイナリを使用します。したがって、SVNのPerlバインディングを有効にすることをお勧めします。

  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印刷する場合は、 Perlモジュールのライブラリパスとして/usr/local/bin/svn使用してみてください。/usr/local/lib

お役に立てば幸いです。

于 2012-12-13T17:23:50.207 に答える
1

できますか:git svn --version

この質問を参照してください:git-svnで使用されるSVNバージョンをアップグレードする方法

アップデート

svnこの回答は、問題がの古いバージョンの使用に関連している可能性がある質問のポスターの元のバージョンへの回答であることに注意してくださいgit-svn。その後、ポスターはgitをアップグレードし、それが原因ではないと判断し、それを反映するように質問を調整しました。

于 2012-11-26T19:51:03.143 に答える
0

これはおそらく、SVN ::CoreperlライブラリまたはXCodeコマンドラインツールの更新の非互換性に関連しています。

ローカルでアップグレードしてみることができます。

cpan SVN::Core

またはグローバルに:

sudo cpan SVN::Core

または、brewを使用している場合は、brew経由でインストールしてみてください。

brew install --perl subversion
brew reinstall git

それでも機能しない場合は、PERL5LIB変数を確認してください。

echo $PERL5LIB

不要なものに設定されている場合は、テストのために設定を解除できます。

unset PERL5LIB

それが役立つ場合は、定義されているファイル(〜/ .profileなど)を見つけて、そこから削除します。


~/.profile複数のperlライブラリがある場合は、ファイルに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.16ではなく5.12など)を指していることにある場合があります。

SVN :: Coreのすべてのインスタンスを見つける簡単な方法は、次のことを試してみてください。

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

関連記事:

于 2013-11-26T16:42:54.543 に答える
0

brew reinstall gitMacOSをMojaveにアップグレードした後、このエラーが再び発生したときは、受け入れられた回答にコメントしたのと同じように、以前と同じようにトリックを実行できると思います。

しかし、残念ながら失敗しました。私が検索した他の情報は私に助けを与えることができません。そのため、インストールアーティファクトを切り捨てて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)
于 2018-12-01T12:00:28.577 に答える