2012-03-27 9 views
7

Estoy intentando migrar un repositorio de SVN a GIT usando svn2git. Es un proyecto de código abierto, el repositorio SVN público es Url: http://svn.verinice.org/svnroot/. No dude en probar la migración ...Error de migración de SVN a GIT usando svn2git

estructura del repositorio SVN es:

  • SUCURSALES
  • TAGS
  • TRONCO

yo usamos el siguiente comando para clonar este Repo:

svn2git http://svn.verinice.org/svnroot 
    --trunk TRUNK 
    --branches BRANCHES 
    --tags TAGS 

Pero este comando solo migra una sola rama y ninguna etiqueta en absoluto. Utilicé estos comandos para verificar el resultado:

[[email protected] git-repo]# git branch -a 
* master 
    springy 
    remotes/springy 
[[email protected] git-repo]# git tag -l 
[[email protected] git-repo]# 

¿Cómo migro todas las ramas y etiquetas? ¡Gracias por su ayuda!

ACTUALIZACIÓN:

Después de usar el parámetro --authors autores-archivo.txt y añadiendo el nombre y dirección de correo electrónico a GIT configuración svn2git funciona bien:

git config --global user.name "your name" 
git config --global user.email "[email protected]" 

Hay que añadir un línea para cada usuario de SVN en authors-file.txt:

svn-user-name = Full Name <[email protected]> 

git branch -a y git tag -l ahora devuelve todas las ramas y etiquetas.

Respuesta

10

No tengo experiencia con svn2git, pero podría intentar usar git svn clone para hacer el cambio a git. Tenga en cuenta que esto llevará mucho tiempo. Vea git help svn para más información.

Tenga en cuenta que esto no creará las etiquetas adecuadas en git, muy probablemente debido a la diferencia en git y las etiquetas svn discutidas en las preguntas frecuentes de svn2git. En cambio, la herramienta creará ramas de etiqueta. Si desea convertirlos en etiquetas adecuadas (y dado que supongo que no volverá a SVN en absoluto, esto no debería causar ningún daño), hay una discusión here sobre cómo escribir un script para hacer solo eso.

+1

+1, git-svn es suficiente para clonar svn repo completamente –

+0

Funciona bien también.Las sucursales en lugar de las etiquetas no son dañinas, aceptadas. –

1

Lo que es importante saber es que todas estas herramientas se basan en el soporte de SVN nativo de git, git-svn. Así que uno puede usar git-svn directamente para clonar, buscar conjuntos de cambios y etc., pero es mejor tener un solo script/herramienta que nos ayude a hacer todas nuestras operaciones durante la migración y, por lo tanto, la necesidad de tales herramientas.

Utilicé la secuencia de comandos svn2git wrapper alojada en https://github.com/nirvdrum/svn2git para la subversión a la migración de git y me ayudó, especialmente cuando queríamos extraer conjuntos de cambios de nuestro repositorio de subversión a intervalos periódicos ya que no cerramos por completo el repositorio de subversión por razones obvias. Puede acceder al script de ruby ​​wrapper, migration.rb para saber más.

Cuestiones relacionadas