Cómo importar svn branch a git con historial de enlaces

Esta es la ruta del trunk svn:

 http://svn/path/libs/trunk/mylib 

Y aquí está la ruta de la branch :

 http://svn/path/libs/branches/mylib/mylib-feature-branch 

Necesito migrar solo la twig a git, pero también necesito su historial de troncales antes de que se creara la twig.

El siguiente command recupera solo el historial de twigs:

 git svn clone http://svn/path/libs/branches/mylib/mylib-feature-branch 

He leído esta respuesta , pero no pude entender cómo debería cambiar el command git svn clone para tener el historial completo de la twig. Cualquier consejo sería apreciado.

Solutions Collecting From Web of "Cómo importar svn branch a git con historial de enlaces"

git-svn no es la herramienta adecuada para conversiones únicas de repositorys o partes de repositorys. Es una gran herramienta si quieres usar Git como frontend para un server SVN existente, pero para las conversiones svn2git no debes usar git-svn , pero svn2git es mucho más adecuado para este caso de uso.

Hay herramientas completas llamadas svn2git , la mejor probablemente sea la de KDE de https://github.com/svn-all-fast-export/svn2git . Recomiendo usar esa herramienta svn2git . Es lo mejor que sé disponible por ahí y es muy flexible en lo que puedes hacer con sus files de reglas.

Fácilmente podrá configurar el file de reglas para que se migren exactamente su twig y su historial.

Si no está al 100% sobre el historial de su repository, svneverever de http://blog.hartwork.org/?p=763 es una gran herramienta para investigar el historial de un repository SVN al migrarlo a Git.


Aunque es más fácil comenzar con git-svn, aquí hay algunas razones más por las que el uso de KDE svn2git lugar de git-svn es superior, además de su flexibilidad:

  • la historia es reconstruida mucho mejor y más limpia por svn2git (si se usa la correcta), este es especialmente el caso para historias más complejas con twigs y fusiones, etc.
  • las tags son tags reales y no sucursales en Git
  • con git-svn las tags contienen un compromiso vacío adicional que también hace que no --tags parte de las twigs, por lo que una fetch normal no las obtendrá hasta que proporciones --tags al command, ya que de manera pnetworkingeterminada solo se --tags las tags que apuntan a las twigs obtenidas . Con las tags adecuadas svn2git es donde pertenecen
  • si cambiaste el layout en SVN puedes configurarlo fácilmente con svn2git , con git-svn svn2git historia eventualmente
  • con svn2git también puede dividir un repository SVN en múltiples repositorys Git fácilmente
  • o combine múltiples repositorys SVN en la misma raíz SVN en un repository Git fácilmente
  • la conversión es un billón de veces más rápida con el svn2git correcto que con git-svn

Hay muchas razones por las cuales git-svn es peor y el KDE svn2git es superior. 🙂