Comencé a usar Git el año pasado y lo he disfrutado tanto que estoy considerando cambiar mi repo más grande y más activo de Subversion. Desafortunadamente, ese repositorio contiene varios proyectos (relacionados, pero independientes).¿Migrar un repositorio de subversión multiproyectos con un tronco común a Git?
Hay muchas, muchas páginas que describen cómo convertir un acuerdo de recompra de un solo proyecto, pero muchos menos de los repos de múltiples proyectos. De hecho, sólo he found un few, y todos ellos parecen asumir que cada proyecto tiene su propio tronco:
project1/
branches/
tags/
trunk/
project2/
branches/
tags/
trunk/
project3/
branches/
tags/
trunk/
Lamentablemente, mi Subversion repo es como la siguiente:
branches/
*empty*
tags/
project1-0.9/
project1-1.0/
project1-1.0.1/
project2-0.9/
project2-0.9.1/
project3-0.5/
trunk/
project1/
project2/
project3/
Peor aún, todas las etiquetas se crean a partir de la copia de trabajo (por ejemplo, svn copy . svn://example.com/svn/tags/project1-1.0.2
), por lo tanto, incluya pequeños cambios que nunca se hayan realizado en el enlace troncal (principalmente números de versión de codificación fija). Además, hay un puñado de commits que abarcan todos los proyectos (actualizaciones de licencia, etc.). Afortunadamente, al menos, ¡no hay fusiones!
¿Hay una manera limpia para desenredar estos proyectos, manteniendo mis etiquetas? Si esto ayuda, esta sería una conversión de una vía, con el repositorio de Subversion desconectado después.
Esta herramienta parece prometedora, pero no puedo por mi propia vida hacer que compile. : -/ –
Lo usé en un entorno Linux y no tuve problemas para compilarlo. Mirando src/src.pro, solo puedo suponer que los desarrolladores originales no tenían incentivos para soportar otras plataformas, ya que este relleno usa las rutas linux típicas para bibliotecas compartidas. En Linux necesita Qt y los archivos de desarrollo para SVN para compilarlo. – sebasgo
Sí, estoy ejecutando Ubuntu Server y no quiere instalar libqt4-devel sin instalar también X11. \ * rolls eyes \ * Y, por supuesto, no se compilará en absoluto en Windows. Todavía estoy tratando de encontrar una tercera opción. :-) –