Obecnie moja firma ma rozwiązanie Visual Studio w repozytorium SVN, które jest zorganizowane w następujący sposób:
SolutionFolder (~3.5 GB)
|-> SolutionName.sln
|-> .. Some source code folders... (~250 MB)
|-> ThirdParty (~3 GB)
|-> Tools
| -> Tool1
| -> Tool2
Tool1 i Tool2 są budowane niezależnie (mają własne rozwiązania), ale wytwarzają pliki wykonywalne, które są używane w głównej wersji. Folder ThirdParty zawiera wszystkie zależności dla projektu, w tym niektóre wstępnie skompilowane ponad 100 MB plików .lib i duże biblioteki, takie jak boost.
Wygodnie jest mieć to wszystko w jednym repozytorium SVN, dzięki czemu (1) programista musi wykonać tylko jedno sprawdzenie i (2) nie musimy śledzić, które wersje zależności potrzebujemy dla każdej wersji kompilacji. Z drugiej strony sprawdzenie tego repozytorium zajmuje trochę czasu.
Jaki byłby najlepszy sposób na przeniesienie tej struktury projektu do git? Przypuszczalnie najlepiej jest wykluczyć ThirdParty i ewentualnie Narzędzia z głównego repozytorium, ale chcielibyśmy, aby ThirdParty można było łatwo pobrać w jednym kroku, i podoba nam się jego wersjonowanie (a niezgodności wersji między głównym repozytorium a ThirdParty / Narzędziami byłyby złe).
W tym momencie nie interesuje mnie zachowanie historii, tylko zastanawianie się, jak zorganizować taki projekt.