¿Cómo se comporta git-svn con los repositorys svn que han cambiado de layout?

Esta pregunta es similar a esta y a esta , pero el escenario es un poco más complejo.

Empecé hace unos años con un repository svn privado (que utilizo principalmente para files de configuration compartida y similares entre varias máquinas). No fui muy cuidadoso con el layout del repository (donde se ramifica, se va, etc.), así que cambió bastante con el time. Esto fue, por supuesto, un error, pero ya es demasiado tarde. Más recientemente, lo he migrado a un layout svn trunk / branches / tags más estándar, principalmente con los commands svn move, pero por supuesto el viejo historial todavía está presente en el repository (y, francamente, es un poco desorderado) .

Ahora me gustaría convertir esto permanentemente a un repository git. He intentado usar git-svn, pero parece que solo maneja situaciones donde se ha seguido una convención de troncal / twig / label consistente (sí, puedes proporcionar nombres alternativos, pero solo uno para cada uno, aparece). Gran parte de la historia de mi repository tiene un tronco efectivamente en la raíz del repository, por ejemplo, con tags / y twigs / como subdirectorys.

¿Cuál es la mejor manera de manejar todo esto? Idealmente, me gustaría que el repository git con el que termino tenga al less todo el historial accesible de alguna manera, incluso si las twigs y las tags no están representadas adecuadamente como conceptos de primera class en git.

Más específicamente, ¿cómo manejará svn-git files fuera de los subdirectorys trunk / branches / tags provistos? Mis observaciones hasta el momento son que a veces las echa de less (definitivamente no está bien), y otras veces las agrega al nuevo repository.

Cualquier pensamiento sería apreciado.

En mi experiencia, la única forma de manejar esto es hacer un seguimiento de la location del repository a lo largo del time, y hacer un clon git-svn por separado para cada período que el proyecto permaneció en una location.

Después de haber creado los repositorys para las diferentes etapas en el time (o al less tan atrás como pueda molestarse), puede injertar los repositorys juntos.

Creé un screencast que demuestra esta técnica aquí:

http://blog.tfnico.com/2010/10/gitsvn-6-grafting-together-svn-history.html