Cómo hacer git svn clone full history a pesar de svn copy

En mi compañía estamos a punto de cambiar de svn a git. El SVN que utilizamos es muy grande, no tiene un layout svn y en cada split de versión hicimos una copy de svn.

Estructura de repository SVN:

  • svnserver.company.de
    • producto xy
      • majorversionnúmero 1
      • majorversionnúmero 2
      • majorversionnúmero 3
        • minorversionnumber 3.0.0
        • minorversionnumber 3.0.1
        • minorversionnumber …
      • majorversionnúmero 4
      • ….
    • producto zw

Lo que queremos o lo que esperaba que hiciera Git:

git svn clone clona todos los files de una subcarpeta / copy con el historial completo de estos files (como lo hace tortoise al desmarcar "Detener al copyr / cambiar el nombre").

Lo que está haciendo git:

git svn clone –prefix = origin / –username = spe –authors-file = authors.txt https://svnserver.company.de/repos/product/majorversionnumber/Master/Source product

-> clona todos los files de una subcarpeta / copy, pero solo con el historial hasta que la copy haya tenido lugar.

La pregunta:

¿Tiene git un equivalente a svns "Stop on copy / rename" o cómo clonar el historial completo a pesar de svn copy?

Lo que he encontrado hasta ahora: Git-svn: historial completo de import Solución para fallar el "git svn clone" (que requiere un historial completo) https://github.com/githubtraining/zzz_deprecated-feedback/issues/43

Para ser sincero, no entendía los enfoques de solución de estos enlaces más cercanos si tenían el mismo problema que nosotros.

Está bien, entonces, si entiendo correctamente tu layout completo es así:

 svnserver.company.de product xy majorversionnumber 1 master <actual source starts here> majorversionnumber 2 majorversionnumber 3 master <actual source starts here> minorversionnumber 3.0.0 master <actual source starts here> minorversionnumber 3.0.1 minorversionnumber ... majorversionnumber 4 .... product zw 

Esta es solo una suposition educada no probada, pero probaría algo como esto. Primero, git svn init svn://svnserver.company.de . Luego edite la sección [svn-remote] .git/config para que [svn-remote] aspecto similar a este:

 fetch = product xy/majorversionnumber 1/master:refs/remotes/origin/trunk branches = product xy/{majorversionnumber 2,majorversionnumber 3}/master:refs/remotes/origin/branches/* branches = product xy/majorversionnumber 3/{minorversionnumber 3.0.0,minorverionnumber 3.0.1}/master:refs/remotes/origin/branches/* 

Luego git svn fetch . Puede usar commands similares + config para crear un clon para el product zw .

Vea la sección de CONFIGURATION de git help svn para más detalles.