Solución:
git-svn no admite externos, pero puede probar SmartGit en lugar de git-svn. Es compatible con svn: externals, convirtiéndolos en un archivo .gitsvnextmodules y mostrándolos como módulos. La única restricción: debe clonar el repositorio con SmartGit en lugar de abrir el repositorio git-svn ya existente.
He usado git como interfaz para acceder a un repositorio SVN. La estructura en SVN es generalmente bastante simple, de modo que hay un directorio de nivel superior que tiene los externos y no los externos en los subdirectorios. Además, los externos no cambian mucho una vez que se agregan. Así que suponiendo algo como:
git svn clone X
cd X
He tenido éxito al obtener todos los externos con el siguiente comando:
git svn show-externals |
perl -ne 'if (/^/(.*) (.*)/) { print "git svn clone $1 $2n"; }' |
bash
Supongo que una estructura más complicada para externos requeriría un script en Perl más complicado. Además, si sus aspectos externos cambian, tendrá que hacer algo similar nuevamente.