Как обращаться с частичным svn: externals при переходе на Git?

Я хочу импортировать репозиторий 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 всего, что мне нужно всего лишь из нескольких модулей?