2009-05-06 18 views
8

Tôi đang sử dụng Mercurial để sử dụng cá nhân và đang tạo nó cho một số dự án được phân phối như một giải pháp thay thế cho SVN vì nhiều lý do khác nhau.Mercurial: Làm thế nào để quản lý mã phổ biến/chia sẻ

Tôi thấy thoải mái khi sử dụng nó cho các dự án khép kín và có thể thấy các tùy chọn khác nhau để chia sẻ tuy nhiên tôi chưa tìm thấy bất kỳ hướng dẫn nào về quản lý các thư viện chung được đưa vào nhiều dự án theo cách tương tự externals trong subversion.

Khối mã được chia sẻ rõ ràng nhất là xử lý và báo cáo lỗi - chúng tôi muốn điều này khá giống nhau trong tất cả các dự án (phát triển khá tốt). Ngoài ra còn có các tiện ích, các thư viện điều khiển và tương tự mà chúng ta thấy tốt hơn khi có các dự án được xây dựng với mỗi giải pháp hơn là các lớp được biên dịch (không phải vì nó đảm bảo chúng được cập nhật, tích hợp liên tục giúp chúng ta giải quyết các thay đổi phá vỡ) .

Suy nghĩ (Tôi ghét câu hỏi mở đã kết thúc, nhưng tôi muốn biết điều gì, nếu có, những người khác đang làm).

Trả lời

3

Mercurial 1.3 hiện bao gồm nested repository support, có thể được sử dụng để biểu thị các phụ thuộc. Các tùy chọn khác là để cho hệ thống xây dựng của bạn xử lý việc tải xuống và theo dõi các phụ thuộc bằng cách sử dụng một cái gì đó như ivy hoặc maven mặc dù những người đang tập trung hơn vào kéo xuống biên dịch mã.

+0

Đi tới 1,3 công trình cho tôi (hoặc ít nhất sẽ làm!) – Murph

0

Sử dụng Forest Extension nó mô phỏng svn externals cho HG, ở một mức độ nào đó.

+0

Cảm ơn, sẽ có một cái nhìn (nó không chính xác những gì tôi đọc nó như là làm, nhưng vì lý do đó mà tôi chưa đọc đủ ...) – Murph

+3

Phần mở rộng Forrest chưa bao giờ được hỗ trợ một cách chính thức, và bây giờ được tuân thủ một cách hoàn toàn bởi sự hỗ trợ mô-đun phụ trong Mercurial 1.3. –

+3

Và đó là một lý do để downmod tôi? Thời gian tôi viết câu trả lời không có Mercurial 1.3. * thở dài * – ismail

1

Thế giới đã thay đổi kể từ khi tôi hỏi câu hỏi đó và giải pháp mà bây giờ tôi sử dụng là khác nhau.

Câu trả lời đơn giản là sử dụng các gói (cụ thể là NuGet as .NET) để cung cấp mã chung thay vì làm tổ repo và bao gồm các dự án trong một giải pháp. Vì vậy, tôi có mã phổ biến được xây dựng vào gói NuGet bởi và được lưu trữ bằng cách sử dụng TeamCity và nơi trước đây tôi sẽ có một bên ngoài và bao gồm các dự án/nguồn tôi bây giờ sẽ chỉ tham khảo các gói phần mềm.

0

Subrepository (với tốt guide) hoặc Guestrepo "để vượt qua ... hạn chế" (của subrepos) là hiện nay ngôn ngữ-agnostic câu trả lời

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