Я не знайшов жодної документації про цю функцію, але схоже, що конфігурація git svn підтримує декілька записів для отримання. Таким чином, ви також можете додавати гілки окремо без необхідності додавати інший віддалений запис сховища svn у ваш конфігурацію, а також не використовуючи символи, щоб отримати всі гілки певного каталогу.
Припустимо, що ваше дерево SVN справді неприємне, що має безліч гілок без будь-якої логіки, як вони розташовані, наприклад, мають гілки та підкаталоги, що містять більше розгалужених.
тобто
trunk
branches
-> branch1
-> sub-dir1
-> branch2
-> branch3
-> sub-dir2
-> branch4
-> sub-dir3
-> branchX
<... hundreds more ...>
і ви просто хочете вручну вибрати деякі гілки для включення у ваше сховище git.
Ви можете спочатку запустити у свій сховище лише стовбур без додаткових гілок:
git svn clone -r 10000:HEAD https://svn.com/MyRepo myrepo --prefix=svn/ --trunk=trunk
Після цього слід побачити наступну конфігурацію:
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, ви можете просто додати нові конфігураційні записи до конфігурації:
git config --add svn-remote.svn.fetch branches/sub-dir2/branch4:refs/remotes/svn/branches/sub-dir2/branch4
Або ви можете редагувати ту саму конфігурацію в .git / config
Щоб отримати нові гілки після додавання їх у конфігурацію, просто запустіть:
git svn fetch -r 10000:HEAD
[Редагувати] Іноді, здається, потрібно запустити витяг із параметром --all для отримання знову доданих гілок:
git svn fetch --all -r 10000:HEAD