Je n'ai trouvé aucune documentation sur cette fonctionnalité, mais il semble que la configuration de git svn prend en charge plusieurs entrées de récupération. De cette façon, vous pouvez également ajouter des branches séparément sans avoir besoin d'ajouter une autre entrée de référentiel svn distante à votre configuration ni d'utiliser des caractères génériques pour obtenir toutes les branches de certains répertoires.
Supposons que votre arbre SVN est vraiment méchant d'avoir beaucoup de branches sans aucune logique sur la façon dont elles sont localisées, par exemple avoir des branches et des sous-répertoires contenant plus de branches.
c'est à dire
trunk
branches
-> branch1
-> sub-dir1
-> branch2
-> branch3
-> sub-dir2
-> branch4
-> sub-dir3
-> branchX
<... hundreds more ...>
et vous voulez juste choisir à la main certaines des branches à inclure dans votre dépôt git.
Vous pouvez d'abord initialiser votre référentiel avec uniquement le tronc sans aucune branche supplémentaire:
git svn clone -r 10000:HEAD https://svn.com/MyRepo myrepo --prefix=svn/ --trunk=trunk
Après cela, vous devriez voir la configuration suivante:
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
chaque fois que vous voulez récupérer une nouvelle branche de MyRepo, vous pouvez simplement ajouter de nouvelles entrées de récupération à la configuration en:
git config --add svn-remote.svn.fetch branches/sub-dir2/branch4:refs/remotes/svn/branches/sub-dir2/branch4
Ou vous pouvez modifier la même configuration dans .git / config
Pour récupérer les nouvelles branches après les avoir ajoutées à la configuration, exécutez simplement:
git svn fetch -r 10000:HEAD
[Edit] Parfois, il semble nécessaire d'exécuter fetch avec le paramètre --all pour récupérer les branches nouvellement ajoutées:
git svn fetch --all -r 10000:HEAD