Я хочу импортировать репозиторий SVN в репозиторий GitHub Enterprise
Есть много вопросов, связанных с этим вопросом, и большинство из них можно решить либо с помощью подмодулей Git, либо поддерева Git.
В моем случае у меня есть два репозитория:
- Основной репозиторий проекта
- Репозиторий модулей (большой репозиторий SVN более 2 ГБ)
Этот репозиторий модулей имеет следующую архитектуру:
foolib/
moduleA/
...
moduleB/
...
...
Для проекта в качестве svn:externals
используется только несколько модулей из foolib
. Например, этот основной проект использует moduleA
из foolib
.
Как упоминалось в этом question, одним из возможных решений является использование разреженной проверки. Я предполагаю, что Git поддерево также сделает трюк. К сожалению, это не решает основной проблемы.
Если мой проект очень мал, до тех пор, пока я получаю что-то из foolib
, даже при разреженной проверке, я получаю всю историю foolib
(например, 2 ГБ). Эта проблема не существует с SVN, потому что свойство svn:externals
использует только то, что ему нужно, а не всю историю.
Я могу представить себе такие глупые вещи, как динамическое создание локального разреженного репозитория с использованием коммитов, перечисленных в git log --follow foolib/moduleA
. Но я полагаю, что это нехорошее решение.
Каким будет правильный рабочий процесс, чтобы получить аналогичное поведение в Git без необходимости извлекать всю историю foolib
всего, что мне нужно всего лишь из нескольких модулей?