Actuellement, mon entreprise a une solution Visual Studio dans un référentiel SVN qui est organisé comme suit:
SolutionFolder (~3.5 GB)
|-> SolutionName.sln
|-> .. Some source code folders... (~250 MB)
|-> ThirdParty (~3 GB)
|-> Tools
| -> Tool1
| -> Tool2
Tool1 et Tool2 sont construits indépendamment (ont leurs propres solutions), mais produisent des exécutables qui sont utilisés dans la build principale. Le dossier ThirdParty contient toutes les dépendances du projet, y compris certains fichiers .lib de plus de 100 Mo précompilés et de grandes bibliothèques comme boost.
Il est pratique de tout avoir dans un seul référentiel SVN pour que (1) le développeur n'ait à effectuer qu'une seule extraction, et (2) nous n'avons pas besoin de garder une trace des versions des dépendances dont nous avons besoin pour chaque version de la build. D'un autre côté, il faut un certain temps pour vérifier ce dépôt.
Quelle serait la meilleure façon de déplacer cette structure de projet vers git? Vraisemblablement, il est préférable d'exclure ThirdParty et éventuellement les outils du référentiel principal, mais nous aimerions garder ThirdParty facilement téléchargeable en une seule étape, et nous l'aimons versionné (et les décalages de version entre le référentiel principal et ThirdParty / Tools seraient mauvais).
À ce stade, je ne suis pas intéressé à préserver l'histoire, juste à trouver comment organiser un tel projet.