Şu anda şirketimin SVN deposunda aşağıdaki gibi organize edilmiş bir Visual Studio çözümü var:
SolutionFolder (~3.5 GB)
|-> SolutionName.sln
|-> .. Some source code folders... (~250 MB)
|-> ThirdParty (~3 GB)
|-> Tools
| -> Tool1
| -> Tool2
Araç1 ve Araç2 bağımsız olarak oluşturulur (kendi çözümlerine sahiptir), ancak ana yapıda kullanılan yürütülebilir dosyalar üretir. ThirdParty klasörü, bazı önceden derlenmiş 100+ MB .lib dosyaları ve boost gibi büyük kütüphaneler dahil olmak üzere proje için tüm bağımlılıkları içerir.
Hepsini bir SVN deposunda bulundurmak uygundur, böylece (1) geliştiricinin yalnızca bir çıkış yapması gerekir ve (2) yapının her sürümü için hangi bağımlılık sürümlerine ihtiyacımız olduğunu takip etmemiz gerekmez. Kapak tarafında, bu repoya bakmak biraz zaman alıyor.
Bu proje yapısını git'e taşımanın en iyi yolu ne olurdu? Muhtemelen ThirdParty ve muhtemelen Tools'u ana repodan hariç tutmak en iyisidir, ancak ThirdParty'yi bir adımda kolayca indirilebilir tutmak istiyoruz ve sürümlendirilmesini beğendik (ve ana repo ile ThirdParty / Tools arasındaki sürüm uyumsuzlukları kötü olurdu).
Bu noktada, tarihi korumakla değil, sadece böyle bir projenin nasıl organize edileceğini bulmakla ilgileniyorum.