2012-03-02 37 views
5

Tôi đang tìm kiếm công cụ quản lý phụ thuộc không dành riêng cho Java hoặc bất kỳ ngôn ngữ nào khác.Có công cụ quản lý phụ thuộc tốt nào không phải là ngôn ngữ cụ thể không?

Chúng tôi sử dụng SystemVerilog, ngôn ngữ mô tả phần cứng, để tạo mô-đun độc lập. Chúng tôi gắn thẻ các bản phát hành của các mô-đun đó tại các cột mốc khác nhau. Thiết kế mức cao hơn thường xuyên kéo các mô-đun khác bằng cách sử dụng thẻ Subversion.

Chúng tôi đã cố gắng sử dụng các phần tử bên ngoài Subversion để tự động hóa mọi thứ, để khi bạn kiểm tra một mô-đun, bạn cũng sẽ nhận được các phụ thuộc của nó. Nhưng khi bạn lên đến mức hệ thống, có rất nhiều phần tử bên ngoài lồng nhau mà phải mất một giờ để chạy cập nhật svn. Rõ ràng cách tiếp cận đó không hiệu quả.

Về cơ bản, tôi muốn có thể nói, "Mô-đun của tôi phụ thuộc vào phiên bản này của mô-đun A, phiên bản mô-đun B này và phiên bản mô-đun C." Công cụ sẽ thực hiện công việc kiểm tra các phụ thuộc, kiểm tra các phụ thuộc của các phụ thuộc và đảm bảo rằng không có phụ thuộc xung đột (ví dụ: hai phiên bản của cùng một mô-đun).

Có công cụ nào hoạt động tốt với ngôn ngữ tùy ý và Subversion không?

Trả lời

0

Tôi không cảm thấy nỗi đau về sự theo dõi phụ thuộc mà bạn mô tả, điều đó có nghĩa là tôi có thể không hiểu rõ vấn đề của bạn.

Một cách tiếp cận là giữ tất cả các phiên bản mô-đun trong các tệp riêng biệt trong cùng một thư viện. Ví dụ: bạn có thể có adder_0_0.sv cho phiên bản đầu tiên của mô-đun HDL của trình bổ sung đầy đủ, mô tả mô-đun được gọi là adder_0. Nếu bạn tìm thấy lỗi trong mô-đun, bạn có thể tạo một tệp có tên là adder_0_1.sv cũng mô tả adder_0. Bạn sẽ có thể sử dụng adder_0_1.sv thay vì adder_0_0.sv. Nếu bạn muốn thay đổi giao diện, bằng cách thêm hoặc xóa cổng hoặc thay đổi ngữ nghĩa của các cổng, bạn có thể tạo một tệp có tên adder_1_0.sv mô tả mô-đun có tên là adder_1. Lưu ý rằng adder_0adder_1không thể được sử dụng thay thế cho nhau.

Triết lý đằng sau phương pháp này là tất cả các tệp này là ghi một lần. Bạn chỉ cần tiếp tục thêm tệp mới vào thư viện của mình. Bất kỳ dự án nào sử dụng thư viện này chỉ cần kiểm tra toàn bộ thư viện và sử dụng bất kỳ tệp nào họ muốn. Quản lý phụ thuộc chỉ phức tạp như việc đặt đúng tên tệp trong tệp mô tả dự án phù hợp cho bất kỳ công cụ mô phỏng hoặc tổng hợp nào bạn sử dụng. Không yêu cầu công cụ quản lý phụ thuộc đặc biệt. Bạn có ít thư viện riêng biệt hơn, việc quản lý chúng dễ dàng hơn.

0

Khi tôi đã có luồng công cụ tìm kiếm tệp nguồn ở hai nơi. Đầu tiên, nó nhìn vào thư mục cục bộ. Thứ hai, nó nhìn vào khu vực "chính" được chia sẻ, thư mục chỉ đọc với tất cả các mã kiểm tra ra cho tất cả mọi người sử dụng. Nếu tôi cần sửa đổi mã, tôi chỉ kiểm tra mô-đun mà tôi cần. Sau đó, kịch bản sẽ nhận mô-đun đó từ vùng làm việc cục bộ của tôi. Phần còn lại của mã nó đọc từ khu vực chủ. Đây là tất cả các kịch bản tùy chỉnh, không có công cụ kệ, nhưng nó không quá khó.

Nếu bạn làm việc này, bạn có thể tiếp tục và biên dịch mã vùng chính thành các thư viện chính, được chia sẻ. Điều này thực sự có thể tăng tốc thời gian biên dịch.

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