Tôi có một cơ sở mã lớn dưới sự kiểm soát nguồn (đã bị lật đổ, bây giờ git). Để biên dịch mã và chạy thử nghiệm, tôi sử dụng một tập hợp các thư viện của bên thứ ba. Những thư viện có thể được chia thành vài categoriesLQuản lý các nguồn và mã nhị phân của bên thứ ba được sử dụng bởi mã dưới sự kiểm soát nguồn
- Binaries chỉ
- nguồn bên thứ 3
- nguồn bên thứ 3 + thay đổi địa phương
Mỗi thư viện có của nó {Windows, Linux} X {debug, release} Cấu hình X {32bit, 64bit}. Ngoài ra, các thư viện này phát triển theo thời gian và các phiên bản khác nhau của dự án của tôi sử dụng các phiên bản/xây dựng khác nhau của các thư viện này.
Câu hỏi của tôi là cách tốt nhất để lưu trữ các bên thứ ba này là gì?
Dưới đây là bộ của tôi về sở thích:
- Giữ kích thước của kho lưu trữ nguồn dự án nhỏ
- Giữ nguồn dự án đồng bộ với các bên thứ 3 vì vậy tôi luôn có thể biên dịch và chạy và phiên bản cũ
- đơn giản để quản lý
- chéo nền tảng
tôi đã cố gắng và suy nghĩ của một số giải pháp nhưng không thỏa đáng:
- Sử dụng tập lệnh được phiên bản để tìm nạp tệp nhị phân từ máy chủ ftp được quản lý thủ công chứa tất cả phiên bản của thư viện. Điều này hoạt động, nhưng yêu cầu quản lý cẩn thận cấu trúc thư mục trên máy chủ. Đó là lỗi dễ bị như ai đó có thể ghi đè lên một trong những tập tin nhị phân với một xây dựng mới.
- SVN externals - Tại thời điểm SVN externals không thể tham chiếu đến một thẻ cụ thể. Hôm nay tôi đang sử dụng git.
- Mô-đun con Git - Kéo toàn bộ kho lưu trữ bên ngoài có thể rất lớn. Ngoài ra, nó yêu cầu quản lý một kho lưu trữ riêng biệt cho mỗi thư viện. Các submodule điểm tại một thẻ cụ thể có nghĩa là hoặc là tôi nhận được tất cả các bên ngoài, khi tôi chỉ cần một số, hoặc tôi bắt chước một số hệ thống tập tin lạ trong cây git.
Rõ ràng với tôi rằng các nguồn của bên thứ ba cần phải được lưu trữ trong git trong chi nhánh nhà cung cấp, nhưng các tệp nhị phân và tiêu đề là một câu chuyện khác.
tôi muốn giới thiệu với lưu trữ những người phụ thuộc trong kho của riêng bạn. Bạn đã xem xét một cái gì đó như Maven? Không có ý tưởng ngôn ngữ bạn đang sử dụng nhưng tôi nghĩ rằng có tồn tại những thứ tương tự cho hầu hết các plattforms lớn. – Dan
Có bao gồm các tệp nhị phân trong repo nguồn thực sự chiếm nhiều không gian đó không? – StingyJack
Một số tệp nhị phân khá lớn. Tuy nhiên, vấn đề thực sự là có nhiều phiên bản của các nhị phân trong kho dự án và chia sẻ cùng một phiên bản nhị phân giữa nhiều dự án. – Xyand