git svn – Error de esquema de URL no reconocido

Recibo el siguiente error al intentar clonar svn rep con git svn:

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/ funciona bien.

He vuelto a correr

 cpan SVN::Core 

e instalar bien terminado, pero aún así get el error.

Aparentemente tienes dos versiones diferentes de los binarys de Subversion y una de esas versiones no es compatible con el protocolo http(s):// .

Si ejecuta svn --version la salida debería include algo como esto:

 * ra_neon : Module for accessing a repository via WebDAV protocol using Neon. - handles 'http' scheme - handles 'https' scheme 

o

 * ra_serf : Module for accessing a repository via WebDAV protocol using serf. - handles 'http' scheme - handles 'https' scheme 

El problema es que git-svn no usa los mismos binarys. En su lugar, utiliza otra versión de SVN comstackda sin compatibilidad con el protocolo http (s): //. Puede haber diferentes razones para eso:

  1. Si svn --version -q imprime 1.7.x , muy probablemente su installation de Git sea demasiado antigua para usar esta versión de SVN. Por lo tanto, es posible que desee actualizarlo ya que las últimas versiones de git-svn compatibles con SVN 1.7.

  2. Si su installation SVN pnetworkingeterminada no tiene ningún enlace Perl instalado, SVN :: Core utiliza los binarys sin soporte http (s) como respaldo. Por lo tanto, es posible que desee habilitar enlaces Perl para SVN.

  3. Finalmente, debido a una mala configuration de los modules de Perl, PATH / LD_LIBRARY_PATH o PERL5LIB (o lo que sea que git-svn use para encontrar las bibliotecas, no soy un experto aquí), git-svn solo usa binarys no válidos.

Los pasos particulares para solucionar el problema dependen de cómo administre los packages, por ejemplo, con Homebrew que se vería así:

 $ brew remove svn $ brew install --with-perl svn 

o

 $ brew remove git $ brew install git 

O con MacPorts algo como esto:

 $ port install subversion-perlbindings 

o

 $ port upgrade git-core +svn 

Después de eso intenta especificar una ruta de biblioteca adecuada. Por ejemplo, si which svn imprime /usr/local/bin/svn , intente utilizar /usr/local/lib como ruta de biblioteca para modules Perl.

Espero que ayude.

Puedes hacer: git svn --version

Vea esta pregunta: Cómo actualizar la versión SVN utilizada por git-svn

ACTUALIZAR

Tenga en count que esta respuesta fue en respuesta a los carteles de la versión original de la pregunta donde el problema puede estar relacionado con el uso de una versión anterior de svn en git-svn . Desde entonces, el póster actualizó git, determinó que no era la causa y ajustó la pregunta para reflejar eso.

Esto probablemente esté relacionado con la incompatibilidad de SVN :: Core perl library o XCode commandline tools update.

Puede intentar actualizarlo localmente:

 cpan SVN::Core 

o globalmente:

 sudo cpan SVN::Core 

o si está usando brew, intente instalarlo a través de brew:

 brew install --perl subversion brew reinstall git 

Si aún no funciona, verifique nuestra variable PERL5LIB:

 echo $PERL5LIB 

si está configurado para algo que no quieres, puedes desarmarlo para probarlo:

 unset PERL5LIB 

Si eso ayuda, encuentre el file que está definido (por ejemplo, ~ / .profile) y elimínelo de allí.


Si tiene múltiples bibliotecas perl, puede especificar la variable de entorno PERL5LIB en su file ~/.profile , por ej.

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

A veces, el problema simplemente se basa en señalar PERL5LIB a la versión anterior de la biblioteca perl, por ejemplo, 5.12 en lugar de 5.16.

La forma más fácil de encontrar todas sus instancias de SVN :: Core, puede intentar:

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

Artículos relacionados:

  • Resuelto: git svn Broken in Mavericks (o Mountain Lion)
  • Usando la variable de entorno PERL5LIB
  • ¿Cómo puedo agregar un directory a la ruta de la biblioteca de Perl en el nivel del sistema?
  • Alien-SVN