Attualmente la mia azienda ha una soluzione Visual Studio in un repository SVN organizzato come segue:
SolutionFolder (~3.5 GB)
|-> SolutionName.sln
|-> .. Some source code folders... (~250 MB)
|-> ThirdParty (~3 GB)
|-> Tools
| -> Tool1
| -> Tool2
Tool1 e Tool2 sono compilati in modo indipendente (hanno le proprie soluzioni), ma producono file eseguibili utilizzati nella build principale. La cartella ThirdParty contiene tutte le dipendenze per il progetto, inclusi alcuni file .lib precompilati da oltre 100 MB e librerie di grandi dimensioni come boost.
È conveniente avere tutto in un repository SVN in modo che (1) lo sviluppatore debba effettuare un solo check-out e (2) non abbiamo bisogno di tenere traccia delle versioni delle dipendenze di cui abbiamo bisogno per ogni versione della build. D'altro canto, ci vuole un po 'di tempo per controllare questo repository.
Quale sarebbe il modo migliore per spostare questa struttura del progetto su git? Presumibilmente è meglio escludere ThirdParty e possibilmente Strumenti dal repository principale, ma vorremmo mantenere ThirdParty facilmente scaricabile in un solo passaggio, e ci piace che sia versione (e le discrepanze tra la versione del repository principale e ThirdParty / Tools sarebbero cattive).
A questo punto non sono interessato a preservare la storia, ma solo a capire come organizzare tale progetto.