Bu özellik hakkında herhangi bir belge bulamadım, ancak git svn yapılandırması birden çok getirme girişini destekliyor gibi görünüyor. Bu şekilde, yapılandırmanıza başka bir uzak svn depo girişi eklemenize veya belirli bir dizinin tüm dallarını almak için joker karakterler kullanmanıza gerek kalmadan şubeleri ayrı ayrı ekleyebilirsiniz.
SVN ağacınızın, nasıl konumlandıklarına dair herhangi bir mantık olmadan çok sayıda dalı olması konusunda çok kötü olduğunu düşünün, örneğin, daha dallı şubeler ve alt dizinlere sahip olmak.
yani
trunk
branches
-> branch1
-> sub-dir1
-> branch2
-> branch3
-> sub-dir2
-> branch4
-> sub-dir3
-> branchX
<... hundreds more ...>
ve sadece git deponuza dahil edilecek bazı şubeleri elden almak istersiniz.
İlk önce deponuzu ek şubesi olmayan sadece bagajla başlatabilirsiniz:
git svn clone -r 10000:HEAD https://svn.com/MyRepo myrepo --prefix=svn/ --trunk=trunk
Bundan sonra aşağıdaki yapılandırmayı görmelisiniz:
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
MyRepo'dan yeni bir şube almak istediğinizde yapılandırmaya şu şekilde yeni getirme girdileri ekleyebilirsiniz:
git config --add svn-remote.svn.fetch branches/sub-dir2/branch4:refs/remotes/svn/branches/sub-dir2/branch4
Veya aynı yapılandırmayı .git / config dosyasında düzenleyebilirsiniz.
Yeni dalları yapılandırmaya ekledikten sonra getirmek için şunu çalıştırın:
git svn fetch -r 10000:HEAD
[Düzenle] Bazen yeni eklenen dalları almak için --all parametresi ile getirmeyi çalıştırmak gerekebilir:
git svn fetch --all -r 10000:HEAD