В настоящее время у моей компании есть решение Visual Studio в репозитории SVN, которое организовано следующим образом:
SolutionFolder (~3.5 GB)
|-> SolutionName.sln
|-> .. Some source code folders... (~250 MB)
|-> ThirdParty (~3 GB)
|-> Tools
| -> Tool1
| -> Tool2
Tool1 и Tool2 создаются независимо (имеют свои собственные решения), но создают исполняемые файлы, которые используются в основной сборке. Папка ThirdParty содержит все зависимости для проекта, включая некоторые предварительно скомпилированные файлы .lib объемом более 100 МБ и большие библиотеки, такие как boost.
Удобно иметь все это в одном репозитории SVN, так что (1) разработчик должен сделать только одну проверку, и (2) нам не нужно отслеживать, какие версии зависимостей нам нужны для каждой версии сборки. С другой стороны, требуется некоторое время, чтобы проверить этот репо.
Как лучше всего перенести эту структуру проекта в git? Предположительно, лучше всего исключить ThirdParty и, возможно, Tools из основного репо, но мы бы хотели, чтобы ThirdParty легко загружалась за один шаг, и нам нравится, что она версионируется (и несовпадение версий между основным репо и ThirdParty / Tools будет плохим).
На данный момент я не заинтересован в сохранении истории, просто в выяснении, как организовать такой проект.