Saat ini perusahaan saya memiliki solusi Visual Studio dalam repo SVN yang diatur sebagai berikut:
SolutionFolder (~3.5 GB)
|-> SolutionName.sln
|-> .. Some source code folders... (~250 MB)
|-> ThirdParty (~3 GB)
|-> Tools
| -> Tool1
| -> Tool2
Tool1 dan Tool2 dibuat secara mandiri (memiliki solusi sendiri), tetapi menghasilkan file yang dapat dieksekusi yang digunakan dalam bangunan utama. Folder ThirdParty berisi semua dependensi untuk proyek, termasuk beberapa file .lib 100+ MB yang telah dikompilasi sebelumnya dan perpustakaan besar seperti boost.
Sangat mudah untuk memiliki semuanya dalam satu repo SVN sehingga (1) pengembang hanya perlu melakukan satu check-out, dan (2) kita tidak perlu melacak versi dependensi yang kita butuhkan untuk setiap versi build. Di sisi lain, perlu beberapa saat untuk memeriksa repo ini.
Apa cara terbaik untuk memindahkan struktur proyek ini ke git? Agaknya yang terbaik adalah mengecualikan ThirdParty dan mungkin Tools dari repo utama, tetapi kami ingin menjaga ThirdParty mudah diunduh dalam satu langkah, dan kami menyukainya versi (dan ketidakcocokan versi antara repo utama dan ThirdParty / Tools akan buruk).
Pada titik ini saya tidak tertarik melestarikan sejarah, hanya mencari tahu bagaimana mengatur proyek seperti itu.