Я хочу к клону мерзавца репозиторий SVN за исключением одной папки в корневой папке svn.
Как я делаю это?
Я мог сделать git svn clone svnrepo/dir/sb-dir/
если мне было нужно только sb-dir
но мне нужны все папки (и файлы) в dir
кроме design
папка
Если вы используете последнюю версию Git1.7.0, она предлагает sparse checkout.
Функция "sparse checkout" позволяет проверять только часть рабочего дерева.
Смотрите Git Sparse Checkout SO question: вам всё ещё нужно клонировать all репо, но вы можете проверять (т.е. заполнять ваше рабочее дерево) только частями клонированного репо)
Единственный другой способ - преобразовать design
как подмодуль.
Как упоминается в книге GitPro:
Поддержка подмодулей в Git'е позволяет репозиторию содержать в качестве поддиректории checkout внешнего проекта.
Подмодули сохраняют свою индивидуальность; поддержка подмодулей просто хранит расположение репозитория подмодуля и ID коммита, поэтому другие разработчики, клонирующие содержащий проект ("суперпроект"), могут легко клонировать все подмодули в той же ревизии.
Возможны частичные проверки суперпроекта: вы можете указать Git'у клонировать ни один, некоторые или все подмодули.
Субмодуль - это единственный известный мне способ добиться "частичного клонирования", поскольку в вашем случае именно часть клонирования является проблематичной.
Из ваших комментариев:
Моя проблема в том, что папка с дизайном занимает около 700 мб; и на git svn clone уходят часы. Весь остальной проект вместе взятый занимает десятки мб.
Но это означает модификацию SVN-репо, чтобы выделить design
как "внешнюю" ссылку, затем git svn clone
и добавить в клонированное Git-репо ссылку на субмодуль.