Importación de un proyecto de git en un subdirectory de un repository de Subversion mientras se mantiene el historial

¿Existe una forma preferida de tomar un repository de git e importarlo a un repository de Subversion existente como un nuevo directory (arbitrariamente nested profundamente) mientras se mantiene el historial de confirmación?

Por ejemplo, si tengo un repository de subversión con la siguiente estructura de directorys (simplificada):

backends backends/A backends/B 

y he estado trabajando en un nuevo backend C en un git repo, ahora quiero agregar el contenido del git repo al svn repo como backends/C

La mayoría de la información que he encontrado parece centrarse en la import en el nivel superior (generalmente a un repository svn recién creado o vacío).

Mi enfoque actual es utilizar el siguiente fragment de la página de manual de git-filter-branch para pasar el nivel superior existente del git repo a backends/C

 git filter-branch --index-filter \ 'git ls-files -s | sed "s-\t\"*-&newsubdir/-" | GIT_INDEX_FILE=$GIT_INDEX_FILE.new \ git update-index --index-info && mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE' HEAD 

luego use git svn y git rebase para get los files en el svn repo. ¿Es así como la mayoría de la gente lo haría, o hay una forma "mejor"?

Si quieres que todo el git repo sea enviado al subdirectory svn y no te preocupes por el rest del svn repo que no aparece en git, puedes simplemente señalar git-svn en ese subdirectory svn en lugar del dir principal.

Asumiendo que la estructura de directorys simplificada que dio como ejemplo está realmente en trunk /, entonces cuando configure git-svn haría algo como git svn init -Ttrunk/backends/C url o git svn init --prefix=backends/C/ url . Estos no son commands exactos, así que asegúrese de consultar la documentation, pero espero que esto lo inicie.