migrar git svn git-svn

migrar - git-svn download



Git-svn: importar el historial completo (2)

Problema

De forma predeterminada, git svn clone importa el historial solo desde la creación de la rama en adelante, a pesar de que el historial de los archivos está presente en el repositorio svn antes de la creación de la rama.

Nuestra rama svn fue creada por svn copy , si eso importa.

Mis intentos

Intenté --no-minimize-url y --follow-parent , pero sin éxito. El repositorio git producido es lo mismo que sin estos parámetros, comenzando desde la creación de la rama.

Resultado deseado

Repositorio de Git con historial completo de la creación del repositorio svn.

Actualización Mi línea de comando real era git svn clone http://svnserver/repo/dir1/dir2/project .
Lo que ayudó fue el argumento -T con el comando resultante
git svn clone http://svnserver/repo/ -T dir1/dir2/project

Muchas gracias !



De forma predeterminada, git svn clone importa el historial solo desde la creación de la rama en adelante, a pesar de que el historial de los archivos está presente en el repositorio svn antes de la creación de la rama.

Sí. eso es verdad. git svn solo intentará importar ramas como ramas si así se lo dice. Desde la página de manual de git-svn:

Al clonar un repositorio SVN, si no se usa ninguna de las opciones para describir el diseño del repositorio (--trunk, --tags, --branches, --stdlayout), git svn clone creará un repositorio git con historia completamente lineal, donde las ramas y las etiquetas aparecen como directorios separados en la copia de trabajo.

Si pasa la URL de una rama a git svn clone (en lugar de la URL de nivel superior), solo obtendrá el historial lineal para esa rama. Eso es probablemente lo que estás viendo.

Si desea un historial completo, use las opciones de diseño del repositorio mencionadas anteriormente y pase la URL de nivel superior. Entonces git svn intentará crear ramas git para ramas SVN e intentará darles el historial correcto, retrocediendo antes de su creación.

Tenga en cuenta que esto le dará el repositorio completo con todas las ramas. Si solo quiere algunas sucursales, debe modificar su configuración como se explica en la página de manual:

También es posible buscar un subconjunto de ramas o etiquetas utilizando una lista de nombres separados por comas dentro de llaves. Por ejemplo:

[svn-remote "huge-project"] url = http://server.org/svn fetch = trunk/src:refs/remotes/trunk branches = branches/{red,green}/src:refs/remotes/branches/* tags = tags/{1.0,2.0}/src:refs/remotes/tags/*

Ver git-svn (1) .