Non ho trovato alcuna documentazione su questa funzione, ma sembra che la configurazione di git svn supporti più voci di recupero. In questo modo puoi anche aggiungere rami separatamente senza bisogno di aggiungere un'altra voce di repository svn remoto alla tua configurazione né usare i caratteri jolly per ottenere tutti i rami di una determinata directory.
Supponiamo che il tuo albero SVN sia davvero brutto con molti rami senza alcuna logica sul modo in cui si trovano, ad esempio con rami e sottodirectory contenenti più rami.
vale a dire
trunk
branches
-> branch1
-> sub-dir1
-> branch2
-> branch3
-> sub-dir2
-> branch4
-> sub-dir3
-> branchX
<... hundreds more ...>
e vuoi solo selezionare manualmente alcuni dei rami da includere nel tuo repository git.
Puoi prima avviare il tuo repository con solo trunk senza rami aggiuntivi:
git svn clone -r 10000:HEAD https://svn.com/MyRepo myrepo --prefix=svn/ --trunk=trunk
Dopodiché dovresti vedere la seguente configurazione:
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
quando vuoi recuperare un nuovo ramo da MyRepo puoi semplicemente aggiungere nuove voci di recupero alla configurazione:
git config --add svn-remote.svn.fetch branches/sub-dir2/branch4:refs/remotes/svn/branches/sub-dir2/branch4
Oppure puoi modificare la stessa configurazione in .git / config
Per recuperare i nuovi rami dopo averli aggiunti alla configurazione basta eseguire:
git svn fetch -r 10000:HEAD
[Modifica] A volte sembra necessario eseguire il recupero con il parametro --all per recuperare i rami appena aggiunti:
git svn fetch --all -r 10000:HEAD