2010-09-20 9 views
10

Estoy tratando de git-svn para trabajar en un servidor privado shadowcat svn.¿Por qué git-svn está cambiando aleatoriamente mi directorio raíz al principal?

git svn clone -s http://dev.catalystframework.org/repos/Catalyst/Catalyst-Plugin-ConfigLoader/ 
Initialized empty Git repository in /home/ecarroll/code/perl/foo/Catalyst-Plugin-ConfigLoader/.git/ 
Using higher level of URL: http://dev.catalystframework.org/repos/Catalyst/Catalyst-Plugin-ConfigLoader => http://dev.catalystframework.org/repos/Catalyst 

¿Qué no funciona? Parece que http://dev.catalystframework.org/repos/Catalyst/Catalyst-Plugin-ConfigLoader/ tiene el diseño estándar.

¿Hay una manera simple y sensata de hacer que git saque de un svn repo?

+0

Funciona bien para mí (Git 1.7). ¿Proporcionó la salida completa del comando? –

Respuesta

13

Llego un poco tarde para responder que el proyecto Catalyst-Plugin-ConfigLoader ha migrado a Git, pero responderé en caso de que alguien se encuentre con un problema similar con un proyecto de svn diferente.

git svn trata de ser útiles por la búsqueda de la raíz del repositorio SVN y el uso que en lugar de la URL que le des. Lo encuentro molesto, pero afortunadamente hay una solución: use la opción --no-minimize-url.

De la documentación git svn (git help svn):

--no-minimize-url

Cuando el seguimiento de múltiples directorios (usando --stdlayout, --branches, o --tags opciones), git svn intentará conectarse a la raíz (o más alto permitido nivel) del repositorio de Subversion. Este valor predeterminado permite un mejor seguimiento del historial si los proyectos completos se mueven dentro de un repositorio, pero puede causar problemas en los repositorios donde existen restricciones de acceso de lectura. Pasar --no-minimize-url permitirá que git svn acepte URLs tal cual, sin intentar conectarse a un directorio de nivel superior. Esta opción está desactivada por defecto cuando solo se rastrea una URL/bifurcación (no serviría de mucho).

0

Me encontré con un problema similar y usé la opción --no-minimize-url. Esto permitió que el clon tuviera éxito, pero algo así como la mitad de las etiquetas faltaban. Resulta que prohibir que el clon subiera un nivel significaba que no podía ver un cambio de nombre anterior que sucedió. Una vez que eliminé la opción --no-minimize-url, aparecieron las etiquetas faltantes.

Cuestiones relacionadas