Hiện tại công ty của tôi có một đơn vị Visual Studio trong một repo SVN được tổ chức như sau:
SolutionFolder (~3.5 GB)
|-> SolutionName.sln
|-> .. Some source code folders... (~250 MB)
|-> ThirdParty (~3 GB)
|-> Tools
| -> Tool1
| -> Tool2
Tool1 và Tool2 được xây dựng độc lập (có giải pháp riêng), nhưng tạo ra các tệp thực thi được sử dụng trong bản dựng chính. Thư mục ThirdParty chứa tất cả các phụ thuộc cho dự án, bao gồm một số tệp .lib 100+ MB được biên dịch sẵn và các thư viện lớn như boost.
Thật tiện lợi khi có tất cả trong một repo SVN để (1) nhà phát triển chỉ phải thực hiện một lần thanh toán và (2) chúng tôi không cần theo dõi phiên bản phụ thuộc nào chúng tôi cần cho mỗi phiên bản của bản dựng. Mặt khác, phải mất một thời gian để kiểm tra repo này.
Điều gì sẽ là cách tốt nhất để di chuyển cấu trúc dự án này sang git? Có lẽ tốt nhất là loại trừ ThirdParty và có thể là Công cụ khỏi repo chính, nhưng chúng tôi muốn giữ cho ThreeParty có thể tải xuống dễ dàng trong một bước và chúng tôi thích phiên bản đó (và phiên bản không khớp giữa repo chính và ThirdParty / Tools sẽ không tốt).
Tại thời điểm này tôi không quan tâm đến việc bảo tồn lịch sử, chỉ cần tìm ra cách tổ chức dự án đó.