2011-09-22 21 views
5

Tôi đang cố gắng chọn một phần mềm điều khiển phiên bản cho nhóm của chúng tôi nhưng tôi không có nhiều kinh nghiệm về nó trước đây. Sau khi tìm kiếm và googling, có vẻ như Mercurial là một thử tốt. Tuy nhiên, tôi hơi bối rối về một số thông tin chung về nó. Về cơ bản, nhóm của chúng tôi chỉ có 5 người và tất cả chúng ta kết nối với một máy chủ sẽ được sử dụng để lưu trữ các kho lưu trữ. Máy chủ là một hệ thống Redhat Linux. Chúng tôi có thể sử dụng rất nhiều công việc tập trung. Bởi vì tôi thích ý tưởng cam kết cục bộ, tôi vẫn thích phần mềm kiểu DVCS hơn. Bây giờ tôi đang cố gắng để cài đặt mercurial. Đây là câu hỏi của tôi.Máy chủ Mercurial có phải là để sử dụng Mercurial không?

1) Máy chủ có được sử dụng cho các kho lưu trữ luôn cần phải được cài đặt phần mềm "mercurial-server" không? Hoặc nó phụ thuộc vào loại công việc mà nó sử dụng? Nói cách khác, có đúng không nếu không có luồng công việc tập trung được sử dụng cho các công trình, thì máy chủ có thể được cài đặt bởi "khách hàng thủy ngân"?

Tôi đang nhầm lẫn về thuật ngữ "máy chủ thủy ngân". Hoặc nó có nghĩa là các mercurial được cài đặt trên máy chủ luôn được gọi là "máy chủ mercurial" và nó không quan trọng nếu nó là tập trung hay không. Ngoài ra, bởi vì tất cả chúng ta làm việc trên máy chủ đó, nó có nghĩa là chỉ cần một bản sao của mercurial để cài đặt ở đó? Chúng ta đều có thư mục người dùng riêng của chúng tôi như/home/Cassie,/home/John, ... và/home/Joe.

2) SSH có phải không? Hoặc nó phụ thuộc vào loại kết nối giữa người dùng và máy chủ? Vì vậy, kể từ khi tất cả chúng ta làm việc trong máy chủ, SSH là không cần thiết phải không?

Cảm ơn bạn rất nhiều,

+2

Tôi thấy bạn đã chọn câu trả lời hay, nhưng tôi muốn dành một giây để rant về 'mercurial-server'. Đó là một gói phần mềm riêng biệt không đến từ dự án Mercurial. Làm thế nào nó đã được đóng gói trong distro lớn với một cái tên khó hiểu như vậy tôi sẽ không bao giờ biết. Một hệ thống tập tin là đủ máy chủ và sshd hoặc Apache nếu bạn muốn một cái gì đó mà không gian tập tin được chia sẻ không có sẵn. –

Trả lời

8

Có hai thứ có thể được gọi là "máy chủ thủy ngân".

Một cách đơn giản là quy ước xã hội rằng "kho X trên ổ chia sẻ là kho lưu trữ chung của chúng tôi". Bạn có thể đẩy và kéo một cách an toàn vào kho lưu trữ được gắn kết đó và sử dụng nó như một "thân cây" chung cho sự phát triển của bạn.

Thứ hai có thể là phần mềm đặc biệt cho phép siêu kết nối từ xa. Có many options để tự thiết lập, cũng như các tùy chọn cho remote hosting khác.

Hãy xem liên kết đầu tiên để biết danh sách các tùy chọn kết nối khác nhau. Nhưng như một câu trả lời cụ thể cho # 2: Không, bạn không cần phải sử dụng SSH, nhưng nó thường là tùy chọn đơn giản nhất nếu bạn đang ở trong một môi trường sử dụng nó anyways.

Thuật ngữ mà bạn có thể muốn sử dụng, thay vì "máy chủ bảo vệ", là "kho lưu trữ từ xa". Thuật ngữ này được sử dụng để mô tả "kho lưu trữ khác" (cái mà bạn không thực thi lệnh) cho các lệnh push/pull/clone/incoming/outgoing/others-that-i'm-forgetting. Kho lưu trữ từ xa có thể là một kho lưu trữ khác trên cùng một đĩa hoặc một thứ gì đó qua mạng.

+0

Cảm ơn :) Nhưng tôi đoán tình hình của tôi nên trường hợp đầu tiên phải không? Vì vậy, có lẽ tôi nên sử dụng cài đặt cho Unix giống như mercurial? – Cassie

4

Thông thường bạn sử dụng một kho lưu trữ dùng chung để chia sẻ mã giữa các nhà phát triển khác nhau. Trong khi bạn không cần nó về mặt kỹ thuật, nó có lợi thế là nó dễ dàng hơn để đồng bộ hóa khi có một điểm duy nhất cho phần mềm mới.

Trong trường hợp đơn giản nhất, đây có thể là kho lưu trữ trên một chia sẻ tệp đơn giản, nơi có thể khóa tệp (NFS hoặc SMB), nơi mỗi nhà phát triển có quyền ghi. Trong trường hợp này không cần phải cài đặt thủy ngân trên máy chủ, nhưng có những hạn chế:

  • Mọi nhà phát triển đều phải cài đặt phiên bản thủy ngân, có thể xử lý phiên bản repo trên cổ phiếu (ví dụ: repo trên chia sẻ được tạo ra với mercurial 1.9, một nhà phát triển với 1.3 không thể truy cập vào repo này)
  • Mọi nhà phát triển đều có thể phát hành các hoạt động phá hoại trên repo được chia sẻ, bao gồm cả việc xóa toàn bộ repo.
  • Bạn không thể đáng tin cậy chạy móc trên repo như vậy, kể từ khi móc được thực hiện trên các máy phát triển, chứ không phải trên máy chủ

Tôi đề nghị để sử dụng http hoặc ssh phương pháp. Bạn cần phải cài đặt mercurial trên máy chủ này (tôi không dùng phương pháp http tĩnh vào tài khoản, vì bạn không thể đẩy vào đường dẫn http tĩnh), và nhận được các ưu điểm sau:

  • phiên bản thủy ngân trên máy chủ không cần phải giống với máy khách, vì sử dụng giao thức dây độc lập với phiên bản
  • bạn không thể thực hiện các hoạt động phá hoại thông qua các giao thức này (bạn chỉ có thể thêm bản sửa đổi mới cho điều khiển từ xa repo, nhưng không bao giờ xóa bất kỳ thứ gì trong số chúng)

Quyết định giữa http và ssh tùy thuộc vào môi trường mạng cục bộ của bạn. http có lợi thế là nó bỏ qua nhiều tường lửa của công ty, nhưng bạn cần phải quan tâm đến xác thực an toàn khi bạn muốn đẩy nội dung qua http trở lại vào máy chủ (hoặc không muốn mọi người xem nội dung). Mặt khác ssh có nhược điểm mà bạn có thể cần để bảo vệ máy chủ, để các máy khách không thể chạy các chương trình tùy ý ở đó (nó phụ thuộc vào mức độ tin cậy của các máy khách của bạn).

2

Câu trả lời thứ hai của Rudi là bạn nên sử dụng http hoặc truy cập ssh vào kho lưu trữ chính (chúng tôi sử dụng http tại nơi làm việc).

Tôi muốn giải quyết câu hỏi của bạn về "mercurial-server".

Phần mềm Mercurial cơ bản không cung cấp ba chế độ server:

  1. Sử dụng hg serve; điều này phục vụ một kho lưu trữ duy nhất, và tôi nghĩ rằng nó được sử dụng nhiều hơn cho các hack nhanh (khi máy chủ chính bị hỏng, và bạn cần phải kéo một số thay đổi từ một đồng nghiệp, ví dụ).
  2. Sử dụng hgwebdir.cgi; đây là một tập lệnh cgi có thể được sử dụng với một máy chủ HTTP như Apache; nó có thể phục vụ nhiều kho lưu trữ.
  3. Sử dụng truy cập ssh (Secure Shell); Tôi không biết nhiều về điều đó, nhưng tôi tin rằng khó thiết lập hơn biến thể hgwebdir

Ngoài ra còn có gói phần mềm riêng biệt gọi là "máy chủ thủy ngân". Điều này được cung cấp bởi một công ty khác; trang chủ của nó là http://www.lshift.net/mercurial-server.html. Theo như tôi có thể nói, đây là một giao diện quản lý cho tùy chọn 3, máy chủ ssh mercurial.

Vì vậy, không, bạn không cần phải cài đặt máy chủ thủy ngân; gói mercurial đã cung cấp một máy chủ.

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