Não encontrei nenhuma documentação sobre esse recurso, mas parece que a configuração do git svn suporta várias entradas de busca. Dessa forma, você também pode adicionar ramificações separadamente, sem precisar adicionar outra entrada remota do repositório svn à sua configuração nem usar caracteres curinga para obter todas as ramificações de determinado diretório.
Suponha que sua árvore SVN seja realmente desagradável, tendo muitas ramificações sem nenhuma lógica de como elas estão localizadas, por exemplo, tendo ramificações e subdiretórios contendo mais ramificações.
ie
trunk
branches
-> branch1
-> sub-dir1
-> branch2
-> branch3
-> sub-dir2
-> branch4
-> sub-dir3
-> branchX
<... hundreds more ...>
e você só quer escolher alguns dos ramos a serem incluídos no seu repositório git.
Você pode primeiro iniciar seu repositório apenas com o tronco sem ramificações adicionais:
git svn clone -r 10000:HEAD https://svn.com/MyRepo myrepo --prefix=svn/ --trunk=trunk
Depois disso, você deverá ver a seguinte configuração:
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
sempre que quiser buscar uma nova ramificação do MyRepo, você pode adicionar novas entradas de busca à configuração:
git config --add svn-remote.svn.fetch branches/sub-dir2/branch4:refs/remotes/svn/branches/sub-dir2/branch4
Ou você pode editar a mesma configuração em .git / config
Para buscar os novos ramos após adicioná-los à configuração, basta executar:
git svn fetch -r 10000:HEAD
[Editar] Às vezes parece ser necessário executar a busca com o parâmetro --all para buscar ramificações adicionadas recentemente:
git svn fetch --all -r 10000:HEAD