2010-05-01 10 views
13

Tôi mới đến Mercurial và cố gắng tìm hiểu xem nó có thể thay thế SVN không. Tất cả mọi người tôi làm việc với đã sử dụng SVN, CVS và VSS (rùng mình), vì vậy đây có thể là một thay đổi khá lớn. Tôi đã rất quan tâm sau khi đọc về khả năng hợp nhất và chi nhánh của nó, nhưng có một vài đặt phòng.Cách cấu hình tốt nhất kho lưu trữ trung tâm/nhiều kho trung tâm cho Mercurial?

Hiện tại chúng tôi đang ở trên SVN và có một kho lưu trữ trung tâm. Từ đọc sách của tôi, có vẻ như không có ONE kho trung tâm cho tất cả các dự án khi sử dụng Mercurial. LƯU Ý: Chúng tôi xem xét từng dự án một bộ mã logic riêng biệt hoặc một giải pháp Visual Studio. Nó tự chạy.

Hiện có khoảng 60 dự án riêng biệt trong kho SVN trung tâm của chúng tôi. Sau khi đọc về Mercurial, có vẻ như với tôi rằng tôi phải tạo ra 60 kho lưu trữ trung tâm riêng biệt cho từng dự án trên máy chủ. CÂU HỎI # 1: Tôi có nên tạo một kho lưu trữ cho từng dự án không?

Nếu có, thì tôi lo lắng về việc định cấu hình và lưu trữ 60 máy chủ Mercurial trung tâm riêng biệt. Tôi bắt đầu nghĩ rằng tôi có thể cấu hình một tập tin, nhưng có vẻ như là mỗi kho lưu trữ phải được cấu hình riêng bằng cách sử dụng tệp “C: ... \ MyRepository.hg \ hgrc” (cài đặt Windows). Nó cũng có vẻ như tôi phải chạy 60 máy chủ (> hg phục vụ), tôi sẽ giả định trên các cổng khác nhau. CÂU HỎI # 2: Nếu câu trả lời cho câu hỏi 1 là có, thì phải có một kho lưu trữ trung tâm duy nhất cho từng dự án, sau đó mọi người quản lý nhiều kho lưu trữ như thế nào? Cuối cùng, tôi đã không xem xét việc di chuyển tất cả lịch sử và thay đổi từ một kho SVN sang một kho lưu trữ Mercurial riêng biệt, nhưng sẽ đánh giá cao bất kỳ nhận xét nào từ người đã thực hiện điều này (hoặc thậm chí có thể).

Trả lời

11

Mercurial hỗ trợ "kho trung tâm" tốt, nhưng thực hiện theo quy ước chứ không phải là fiat.

Bạn chỉ cần chạy một máy chủ duy nhất để chạy tất cả sáu mươi vị trí lưu trữ và bạn sẽ không sử dụng hg serve cho nó. Thay vào đó, bạn chọn một trong các phương pháp chất lượng sản xuất từ ​​among the publishing options. Có khả năng bạn sẽ chạy hgwebdir sau Apache, Nginx hoặc IIS tùy thuộc vào tùy chọn của bạn.

Khi chạy, bạn có thể tạo các đại diện mới với hg init hoặc hg clone trong thư mục kho lưu trữ của bạn. Tại một nhà tuyển dụng trước, chúng tôi có năm sản phẩm, với một kho lưu trữ "trung tâm" cho mỗi sản phẩm và từ 10 đến 20 bản sao của mỗi nhóm cho các nhóm và tính năng khác nhau, tất cả đều chạy trong một máy chủ duy nhất. Các repo trung tâm xác định "những gì chính thức" nhưng bạn sẽ tìm thấy reposptu repos cho các tính năng không chính thức mọc lên tất cả các thời gian.

hg serve là dành cho hai nhà phát triển để bàn giao một số thay đổi trong một vội vàng, nhưng repos đã xuất bản yêu cầu giàn giáo nhiều hơn một chút.

6

Bạn sẽ tạo 1 repo trung tâm cho mỗi dự án. Nếu tôi là bạn, tôi sẽ nghĩ đến việc lưu trữ qua Kiln. Nó kết thúc tốt đẹp các công cụ đánh giá rất tốt và một giao diện web đẹp xung quanh Mercurial với kho lưu trữ không giới hạn và lưu trữ. Họ chăm sóc của tất cả các bit khó chịu của lưu trữ và sao lưu cho bạn. Tôi cũng rất muốn giới thiệu Joel's Mercurial tutorial.

0

Theo cách đơn giản nhất, bạn sẽ cần 60 kho "trung tâm", tất cả đều có thể được phân phát bằng cách sử dụng một nội dung/máy chủ web. Mỗi kho lưu trữ có thể được coi là một thư mục có đường dẫn từ thư mục gốc của thùng chứa máy chủ.

Nghĩ về bitbucket hoặc github.Họ phục vụ hàng ngàn kho lưu trữ dưới một máy chủ (hoặc nhiều khả năng một máy chủ trang trại), nhưng họ là mỗi độc lập với nhau, không giống như SVN, nơi tất cả mọi thứ dưới một kho lưu trữ khổng lồ và chia sẻ gia tăng sửa đổi.

2

Nếu bạn đang tìm kiếm thứ gì đó tự lưu trữ, hãy xem http://rhodecode.org nó mạnh hơn nhiều so với hgweb thuần túy. Nó giống như một bitbucket nhỏ chỉ tự lưu trữ.