git y svn externos: ¿una solución final todavía?

Este es el flujo de trabajo que utilizo actualmente para mis proyectos de svn (nunca uso ramas de svn, y algunas personas también trabajan activamente en algunos proyectos):

en el servidor, haga el inicialgit svn fetch lo que puede llevar horas También cree una rama 'construir'.En una máquina de desarrollo, la clonación ahora es rápida:git clone srv://project.git, git checkout build seguido porgit update-refs ..., git svn fetch para restaurar el enlace al repositorio svntrabajo, compromiso, compromiso de trabajo, ...para comprobar si las cosas están sanas,git push build al servidor y desencadenar una compilación en Hudson para esa ramapara almacenar trabajo para poder trabajar en él desde otra máquina, también empuje la rama de compilacióncuando esté satisfecho, unir confirmaciones en pasos lógicos (por ejemplo, una para cada error), comprometerse a svn y restablecer todo comogit checkout master, git merge build, git svn dcommit, git push, git checkout build, git rebase master, git push build

Ingrese svn externos. Probé cada guiónaquí ya pero todos fallan. Mis externos están configurados así:

/path/to/x x
/path/to/y/z y/z
/path/to/a/b.file a/b.file

y los guiones hacen cosas como intentar crear/path/to/x en la raíz del sistema de archivos ygit svn fetch /path/to/x. Además, los archivos individuales parecen causar más problemas. (Pregunta 1: ¿cuál es el formato svn: externo para el que se escribieron estos scripts entonces?)

No parece difícil modificar uno de los scripts para manejar mi situación y replicar la estructura de directorios que busco correctamente, pero luego me quedo con un problema importante: si cambio un archivo tanto en x como en y / z directorios, no veo una manera de unir esto en un solo svn commit y esa es una de las razones por las que comencé a usar git en primer lugar.

De ahí la pregunta: ¿hay alguna manera de que pueda replicar el flujo de trabajo anterior, utilizando solo partes de un determinado repositorio svn, de tal manera que pueda hacer svn dcommit en la raíz? Prefiero una solución lista para usar que funcione tanto en Linux como en Windows.

editar Rápidamente pirateé uno de los scripts que encontré y lo hice replicando la estructura de directorios de los svn externos. Sin embargo, no puedo clonar archivos individuales, aquí está la salida:

git svn clone -r HEAD srv://svn/repo/path/to/projects.sln
Initialized empty Git repository in xxx/projects.sln/.git/
Invalid filesystem path syntax: REPORT request failed on '/svn/repo/!svn/vcc/default':
  Cannot replace a directory from within at yyy/git/libexec/git-core/git-svn line 5114

Pregunta 2: ¿no es posible obtener un solo archivo a través de git svn?

Respuestas a la pregunta(2)

Su respuesta a la pregunta