pasar de bzr a git: cómo colocar una twig encima de otra

He buscado una solución por semanas, pero no tuve suerte.

Tengo un repository de bazar con 5 años de historia (hasta 2011). Cuando comencé a trabajar en este proyecto (2011), estaba usando svn, por lo que el "administrador" simplemente me dio un tarball con las fonts del "maestro" (ha sido impossibile convertir el proyecto en svn). Configuré un repo svn de ese tarball y trabajé en él hasta el mes pasado. Cambié a git recientemente, convirtiendo los repos de svn y git en dos repositorys git.

Ahora tengo dos repositorys de git: el anterior repository bzr, que cubre 2006-2011, y mi repository, que cubre 2011-2016. Lo que me gustaría hacer es tener una historia lineal en el maestro, es decir, me gustaría poner mi maestro (con twigs adjuntas) "en la parte superior" del anterior bzr repo.

¿Es posible?

Sí, esto es posible

  1. Primero, convierta el repository bzr a git. Tendrás dos repositorys, llamémosles proj-bzr y proj-git.

  2. En proj-git, agregue proj-bzr como control remoto, y tráigalo. Con suerte, el último commit de proj-bzr y el primer commit de proj-git tienen los mismos files.

  3. Agregue un injerto que establezca la última confirmación de proj-bzr como padre con la confirmación de proj-git más antigua. Ver: https://git.wiki.kernel.org/index.php/GraftPoint

  4. Una vez que esté convencido de que este es el historial correcto, puede usar filter-branch para "hornear" el injerto en el repository y hacerlo permanente. Esto reescribirá todos los hashes SHA-1 de proj-git.