2010-02-02 43 views
5

Tôi hiện đang làm việc trên một dự án có các thành phần trong perl, .NET, C/C++ và Java. Các thành phần này có liên quan đến nhau, nhưng không gắn liền với cùng một lịch phát hành. Do các yêu cầu môi trường xây dựng/thử nghiệm rất khác nhau, gộp tất cả chúng vào cùng một phân cấp/bin/src/lib/etc/tests là một chút khó sử dụng.Sắp xếp một dự án sử dụng nhiều ngôn ngữ?

Một số hệ thống phân cấp tổ chức tốt để sử dụng trong kiểm soát nguồn khi xử lý một dự án có tính chất này là gì? Tôi hiện đang nghiêng về phía mỗi ngôn ngữ có chi nhánh riêng của mình:

repo/project1/perl/main/...

repo/project1/.NET/main/...

repo/project1/Java/main/...

Thay đổi cấp bậc được đề xuất của bạn sẽ thay đổi như thế nào nếu DID có lịch phát hành ràng buộc?

+1

Có vẻ như bạn đang đi đúng hướng ... –

Trả lời

2

Tôi nghĩ rằng những gì bạn đặt ra là trên đường dây. Nếu bạn phát hành dự án như một toàn bộ với tất cả các thành phần trái ngược với việc phát hành riêng từng thành phần thì tôi có thể sử dụng svn: externals cho các vị trí repo khác nhau hoặc các kho lưu trữ hoàn toàn khác nhau, sau đó chỉ liên kết xây dựng qua bên ngoài với bản phát hành được gắn thẻ tương thích mới nhất của một thành phần . Hoặc nếu sử dụng git thì hãy sử dụng các mô-đun con để làm điều tương tự.

/repo/project1 
    trunk/ 
    svn:external .Net /repo/project1/components/.Net 
    svn:external perl /repo/project1/components/perl 
    svn:external Java /repo/project1/components/Java 
    -- other integration code or what have you -- 
    tags/ 
    branches/ 
    components/ 
    .Net/ 
     trunk/ 
     tags/ 
     branches/ 
    Java/ 
     trunk/ 
     tags/ 
     branches/ 
    perl/ 
     trunk/ 
     tags/ 
     branches/ 

Cấu trúc chính xác sẽ phụ thuộc vào quy trình làm việc và chính xác cách các thành phần được tích hợp nhưng bạn có ý tưởng.

Các vấn đề liên quan