Nie znalazłem żadnej dokumentacji na temat tej funkcji, ale wygląda na to, że konfiguracja git svn obsługuje wiele wpisów pobierania. W ten sposób możesz również dodawać gałęzie osobno, bez potrzeby dodawania kolejnego wpisu zdalnego repozytorium svn do swojej konfiguracji ani używania symboli wieloznacznych, aby uzyskać wszystkie gałęzie określonego katalogu.
Załóżmy, że twoje drzewo SVN jest naprawdę paskudne, mając wiele gałęzi bez logiki co do ich lokalizacji, np. Mając gałęzie i podkatalogi zawierające bardziej rozgałęzione.
to znaczy
trunk
branches
-> branch1
-> sub-dir1
-> branch2
-> branch3
-> sub-dir2
-> branch4
-> sub-dir3
-> branchX
<... hundreds more ...>
i po prostu chcesz ręcznie wybrać niektóre gałęzie, które zostaną włączone do Twojego repozytorium git.
Możesz najpierw zainicjować swoje repozytorium tylko z pniem bez żadnych dodatkowych gałęzi:
git svn clone -r 10000:HEAD https://svn.com/MyRepo myrepo --prefix=svn/ --trunk=trunk
Następnie powinieneś zobaczyć następującą konfigurację:
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
kiedy chcesz pobrać nowy oddział z MyRepo, możesz po prostu dodać nowe wpisy pobierania do konfiguracji poprzez:
git config --add svn-remote.svn.fetch branches/sub-dir2/branch4:refs/remotes/svn/branches/sub-dir2/branch4
Lub możesz edytować tę samą konfigurację w .git / config
Aby pobrać nowe gałęzie po dodaniu ich do konfiguracji, po prostu uruchom:
git svn fetch -r 10000:HEAD
[Edytuj] Czasami wydaje się konieczne uruchomienie pobierania z parametrem --all, aby pobrać nowo dodane gałęzie:
git svn fetch --all -r 10000:HEAD