Migración de VCS a Git: ¿cómo es mi enfoque?

Acabo de heredar un gran proyecto web usando SVN para VCS. No hay sucursales y el proyecto se ha abandonado durante los últimos cuatro meses; es bastante estable.

Planeo migrar el SVN a Git (usando gitosis) mientras tenga la oportunidad, por lo que convertiré el historial de SVN en la rama maestra del nuevo repositorio de Git que estoy instalando.

Gracias a una gran cantidad de otras preguntas aquí, definitivamente tengo esa parte cubierta; a partir de ahí, planeo crear una rama para cada etapa de desarrollo: alpha, dev, stage y prod, y tener esos servidores pull las ramas a las que "pertenecen". También planeo fusionar hacia arriba (comprometerme con alfa, fusionar con dev, fusionar con etapa, etc.) y pushing para prod.

Creo que este es el mejor plan para este tipo de entorno, pero me pregunto si hay alguna trampa o algo que deba tener en cuenta antes de comenzar. ¡Apreciamos mucho su conocimiento!

preguntado el 16 de mayo de 11 a las 17:05

2 Respuestas

Podrías considerar:

  • usar gitolita en lugar de la gitosis obsoleta (para la capa de autorización)
  • creando varios repositorios Git para aislar un subconjunto coherente del repositorio SVN inicial.
  • teniendo en cuenta la aspectos de identificación y autorización que no existen con un DVCS: incluso si está mapeando sus usuarios SVN para la migración (como se describe en manojlds in su respuesta), nada les impide comprometerse con cualquier 'user.name' que deseen una vez que estén trabajando con el nuevo repositorio de Git.

contestado el 23 de mayo de 17 a las 15:05

¿Por qué gitolite? ¿Hay otros paquetes disponibles que debería considerar? Gracias por los otros consejos también, se los agradezco mucho. - Nic

@melee: la gitosis está obsoleta y ya no se mantiene. Gitolite es mucho más completo en términos de gestión de autorizaciones detallada. Ambos utilizan el mismo mecanismo de "comando forzado" basado en ssh. - VonC

Una cosa es que debe tener un archivo de mapa de autores que aplique los nombres de usuario de SVN a los usuarios de Git con nombre de usuario y correo electrónico. Hay scripts para generar un archivo de autores de este tipo, algo como:

svn log | grep -E "r[0-9]+ \| .+ \|" | awk '{print $3}' | sort | uniq

Puedes hacer uso de svn2git para la conversión.

Pero creo que es posible que haya cubierto los dos anteriores o tenga otras formas de hacerlo, pero es posible que mencionar como el archivo de autores no se mencione en muchos lugares.

También puedes mirar en git-flow para establecer su flujo de trabajo y el de su equipo.

contestado el 16 de mayo de 11 a las 21:05

No es algo que consideré porque solo hay un usuario en el repositorio de SVN con historial de confirmaciones ... Loco, ¿verdad? Pero veré las cosas que vinculó con seguridad. - Nic

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.