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