2012-03-23 18 views
5

He tenido algunos problemas al intentar acceder a un repositorio de Subversion a través de HTTPS usando git-svn.Error de protocolo desconocido al usar git-svn a través de HTTPS a través de un servidor proxy

Cuando escribo git svn init --username=<my username> --trunk=https://<host>/<project>/trunk, me sale el siguiente mensaje de error:

RA layer request failed: PROPFIND request failed on '/<project>/trunk': 
PROPFIND of '/<project>/trunk': SSL negotiation failed: SSL error: unknown 
protocol (https://<host>) at C:\Program Files (x86)\Git/libexec/git-core\git-svn 
line 2299 

Un par de otros puntos a tener en cuenta:

  1. estoy usando msysgit 1.7.9.0 en Windows 7 x64. También tengo instalado el cliente de línea de comandos Subversion 1.7.1 y TortoiseSVN 1.7.1.
  2. Me estoy conectando a través de un servidor proxy, que he especificado a través de la variable de entorno HTTP_PROXY y git config http.proxy.
  3. Puedo clonar repositorios de Github a través de HTTPS en la misma máquina sin problemas.
  4. El cliente simple de Subversion comprueba el mismo proyecto sin problemas. También pude clonarlo exitosamente con Mercurial y hgsubversión, aunque no reconoció el certificado SSL del servidor, así que tuve que especificarlo explícitamente en mi archivo mercurial.ini. Debido a esto, estoy usando git config http.sslVerify=false. Sin embargo, esto no hace ninguna diferencia.
  5. Las soluciones temporales de una vía, como el uso de svnsync (como, por ejemplo, here) no son una opción.

¿Algo más que no haya probado?

+0

¿Puede verificar primero que puede verificar ese proyecto con un cliente de subversión simple, para descartar cualquier problema con la subversión en sí? –

+0

Ya lo he hecho, el cliente de Subversion revisa el proyecto sin problemas. – jammycakes

+0

James, 'openssl s_client -connect host: 443' por favor por sake –

Respuesta

0

Finalmente he descubierto cómo hacerlo funcionar. La respuesta vino del this thread.

Cuando se conecta a un servidor de Subversion a través de un proxy, git-svn no usa la configuración de proxy en .gitconfig, ni usa la configuración que configura en TortoiseSVN. En cambio, se ve en la sección [global] de %USERPROFILE%\.subversion\servers.

Agregar nuestra configuración de servidor proxy a este archivo me permitió conectarme a un servidor externo de Subversion.

1

El mensaje que está recibiendo (SSL23_GET_SERVER_HELLO: protocolo desconocido) es fácil de buscar en Google. P.ej. here o here Parece que tiene los servidores https o dns mal configurados y nada que ver con git.

+0

Esto no explica por qué pude conectarme exitosamente usando tanto Subversion de vanilla como Mercurial/hgsubversion. Lo único que sus enlaces sugieren que puedo seguir es "El sitio de destino no le gusta el cifrado". Sin embargo, ¿cómo puedo especificar un cifrado diferente usando git-svn? Además, no tengo acceso al servidor para modificar la configuración de https o DNS. – jammycakes

1

Ofreciendo una respuesta un tanto menos escueta, kan is correct. La razón por la que está viendo esto es que su repositorio en sentido ascendente no está configurado correctamente para SVN + HTTPS. Esto puede deberse a una configuración incorrecta en el extremo del servidor, o puede deberse a una diferencia en el protocolo SVN que se está sirviendo frente a lo que espera el cliente.

La errata proporciona los escenarios de depuración correctos para este problema. Si tiene control sobre el repositorio SVN en cuestión, asegúrese de its HTTPS configuration is working properly para proceder a utilizarlo como su repositorio en sentido ascendente. Si desea cambiar el protocolo o la URL que se utiliza para solucionar los problemas de la conexión (por ejemplo, para probar HTTP o SSH), here's the guide you'll need.

+0

Desafortunadamente esta respuesta tiene el mismo problema: no explica (a) por qué vainas Subversion funciona bien y Mercurial/hgsubversión también puede funcionar bien, y (b) por qué un repositorio SVN en SourceForge también falla. Estoy empezando a pensar que es más probable que se trate de un problema de servidor proxy. – jammycakes

9

Para ampliar un poco en las otras dos respuestas (y explicar por qué se está viendo lo que está viendo), git svn (como parte de msysgit) está construido en SVN 1.4.6:

C:\> git svn --version 
git-svn version 1.7.7.1.msysgit.0 (svn 1.4.6) 

Tenga en cuenta que 1.4.6 es ... bueno ... viejo. (Y hasn't even been supported since 1.6 was released en 2009.)

de git-svn msysgit es no la utilización de su subversión de instalar - así que el poder a la caja de la utilización de su instalado svn es (por desgracia) no es indicativo del problema.

Hay some bug reports sobre la actualización a una subversión más reciente para msysgit, pero parece que aún no se han materializado.

¿Has probado cygwin's git-svn?

+0

+1. Buen hallazgo! :) – MrGomez

+0

Disparo en la oscuridad, pero podría ser posible simplemente reemplazar los dlls libsvn con los de una versión más nueva de svn. Sin embargo, no tengo una máquina de Windows fácilmente accesible para probarlo. –

+0

He intentado cygwin's git-svn. Desafortunadamente, da casi el mismo error, con la excepción de que dice OPCIONES en lugar de PROPFIND. – jammycakes

Cuestiones relacionadas