Actualmente, mi empresa tiene una solución de Visual Studio en un repositorio SVN que se organiza de la siguiente manera:
SolutionFolder (~3.5 GB)
|-> SolutionName.sln
|-> .. Some source code folders... (~250 MB)
|-> ThirdParty (~3 GB)
|-> Tools
| -> Tool1
| -> Tool2
Tool1 y Tool2 se compilan de forma independiente (tienen sus propias soluciones), pero producen ejecutables que se utilizan en la compilación principal. La carpeta ThirdParty contiene todas las dependencias para el proyecto, incluidos algunos archivos .lib precompilados de más de 100 MB y grandes bibliotecas como boost.
Es conveniente tenerlo todo en un repositorio SVN para que (1) el desarrollador tenga que hacer solo un check-out, y (2) no necesitemos hacer un seguimiento de las versiones de dependencias que necesitamos para cada versión de la compilación. Por otro lado, lleva un tiempo revisar este repositorio.
¿Cuál sería la mejor manera de mover esta estructura de proyecto a git? Presumiblemente, es mejor excluir ThirdParty y posiblemente Tools del repositorio principal, pero nos gustaría mantener ThirdParty fácilmente descargable en un solo paso, y nos gusta que esté versionado (y los desajustes de versión entre el repositorio principal y ThirdParty / Tools serían malos).
En este momento no estoy interesado en preservar la historia, solo en descubrir cómo organizar dicho proyecto.