Repo de SVN de migration en diferentes repositorys estructurados de git

mi proyecto actualmente está cambiando de svn a git repository.

AS_IS (SVN):

parent-module |_module_X | |_trunk | |_branches |_module_Y | |_trunk | |_branches |_module_Z | |_trunk | |_branches |_module_K |_trunk |_branches 

Me gustaría migrar repositorys svn a git obteniendo la siguiente estructura, manteniendo el historial:

TO_BE (GIT):

  parent-module_A |_master |_module_X |_module_Y |_branches |_module_X |_module_Y parent-module_B |_master |_module_z |_module_K |_branches |_module_Z |_module_K 

¿Alguna idea sobre la mejor manera de hacer esto?

Encontré una solución aquí: http://bpeirce.me/moving-one-git-repository-into-another.html

Estoy migrando cada proyecto module_X, module_Y (solo el trunk) con git svn como se explica aquí: http://john.albin.net/git/convert-subversion-to-git

entonces

Creé un git de proyecto desnudo en mi server

 git init --bare parent-module_A 

Entonces la situación es:

  • parent-module_A.git
  • module_X.git
  • module_Y.git

entonces cloné el proyecto en mi máquina

 git clone http://host/parent-module_A mainproj git clone module_X.git subproj_tmp cd subproj_tmp/ git filter-branch -f --prune-empty --tree-filter 'mkdir -p .sub; mv * .sub; mv .sub module_X ' -- --all git gc --aggressive cd ../mainproj git remote add module_X ../subproj_tmp git fetch module_X git merge module_X/master git remote rm subproj git gc --aggressive git push origin master 

Repetí el procedimiento para Module_Y.