Вот ситуация: у нас есть огромный репозиторий SVN, который является "ведущим устройством" (не может изменить это, потому что он на самом деле "принадлежит" другой компании). Мы предпочли бы работать локально в мерзавце для получения переходящей гибкости и скорости тот мерзавец предложения. Но мы не хотим клонировать целый репозиторий.
Структура репозитория примерно походит на это:
/trunk/project1/*
/project2/*
/branches/branch/project1/*
/project2/*
/tags/tag1/tag1a/project1/*
/tag1b/project1/*
/tag2/tag2a/project2/*
Я только интересуюсь project1, но я хотел бы иметь и соединительную линию и ответвления (теги не так важны, но было бы хорошо получить их, также).
Я могу клонировать единственное ответвление с этими svn-удаленными настройками:
[svn-remote "svn"]
url = https://svn.company.com/svn/branches/branch1/project1
но я действительно хочу получить переходящую структуру, также. Я думал об использовании игнорировать-путей:
[svn-remote "svn"]
ignore-paths=^project2|^project3|...
но я должен был бы обновить игнорировать-пути каждый раз, когда новый каталог "проекта" верхнего уровня добавляется, который не действительно устойчив.
Во вторую очередь нам действительно нужны только теги в/tags/tag1 (если нам нужны теги вообще). Любые мысли о том, как сделать, который ценился бы.
Я думаю, что следующее в вашем .git / config файле должно работать:
[svn-remote "svn"]
url = https://svn.company.com/svn
trunk = trunk/project1:refs/remotes/svn/trunk
tags = tags/*/project1:refs/remotes/svn/tags/*
branches = branches/*/project1:refs/remotes/svn/branches/*
Я основывал это на разделе конфигурации git- svn manpage