Attualmente la mia azienda ha una soluzione di 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 costruiti in modo indipendente (hanno le proprie soluzioni), ma producono gli eseguibili che sono usati nella build principale. La cartella ThirdParty contiene tutte le dipendenze per il progetto, inclusi alcuni file .lib 100+ MB e librerie di grandi dimensioni come boost.
È conveniente avere tutto in un unico repository SVN in modo che (1) lo sviluppatore debba fare solo un check-out, e (2) non abbiamo bisogno di tenere traccia delle versioni delle dipendenze di cui abbiamo bisogno per ogni versione di la build. Il rovescio della medaglia, ci vuole un po 'per verificare questo repo.
Quale sarebbe il modo migliore per spostare questa struttura di progetto in git? Presumibilmente è meglio escludere ThirdParty e possibilmente Tools dal repository principale, ma vorremmo mantenere ThirdParty facilmente scaricabile in un solo passaggio, e ci piace come versione (e le mancate corrispondenze di versione tra il repository principale e ThirdParty / Tools sarebbero pessime).
A questo punto non sono interessato a preservare la storia, solo a capire come organizzare questo progetto.