No he encontrado ninguna documentación sobre esta característica, pero parece que la configuración de git svn admite múltiples entradas de búsqueda. De esta manera, también puede agregar ramas por separado sin necesidad de agregar otra entrada de repositorio svn remota a su configuración ni usar comodines para obtener todas las ramas de cierto directorio.
Suponga que su árbol SVN es realmente desagradable con muchas ramas sin ninguna lógica de cómo están ubicadas, por ejemplo, tener ramas y subdirectorios que contienen más ramas.
es decir
trunk
branches
-> branch1
-> sub-dir1
-> branch2
-> branch3
-> sub-dir2
-> branch4
-> sub-dir3
-> branchX
<... hundreds more ...>
y solo desea elegir a mano algunas de las ramas que se incluirán en su repositorio git.
Primero puede iniciar su repositorio con solo troncal sin ninguna rama adicional:
git svn clone -r 10000:HEAD https://svn.com/MyRepo myrepo --prefix=svn/ --trunk=trunk
Después de eso, debería ver la siguiente configuración:
localhost: elhigu$ git config --get-regexp "svn-remote."
svn-remote.svn.url https://svn.com/MyRepo
svn-remote.svn.fetch trunk:refs/remotes/svn/trunk
cuando quiera obtener una nueva sucursal de MyRepo, simplemente puede agregar nuevas entradas de recuperación a la configuración:
git config --add svn-remote.svn.fetch branches/sub-dir2/branch4:refs/remotes/svn/branches/sub-dir2/branch4
O puede editar la misma configuración en .git / config
Para buscar las nuevas ramas después de agregarlas a la configuración, simplemente ejecute:
git svn fetch -r 10000:HEAD
[Editar] A veces parece necesario ejecutar fetch con --todos los parámetros para recuperar ramas recién agregadas:
git svn fetch --all -r 10000:HEAD