簡體   English   中英

Mercurial Server是否必須使用Mercurial?

[英]Is Mercurial Server a must for using Mercurial?

我正在嘗試為我們的團隊選擇版本控制軟件,但我之前沒有太多經驗。 搜索和谷歌搜索后,似乎Mercurial是一個很好的嘗試。 但是,我對它的一些一般信息有點困惑。 基本上,我們的團隊只有5個人,我們都連接到將用於存儲存儲庫的服務器機器。 該服務器是Redhat Linux系統。 我們可能會使用很多集中式工作流程。 因為我喜歡本地提交的想法,所以我更喜歡DVCS類軟件。 現在我正在嘗試安裝mercurial。 這是我的問題。

1)用於存儲庫的服務器是否總是需要安裝軟件“mercurial-server”? 或者它取決於它使用的工作流程類型? 換句話說,如果沒有用於工作的集中式工作流,那么服務器是否可以通過“mercurial client”安裝?

我對“mercurial-server”一詞感到困惑。 或者它意味着安裝在服務器上的mercurial總是被稱為“mercurial服務器”,如果它是集中的,它確實很重要。 另外,因為我們都在該服務器上工作,這是否意味着只需要安裝一個mercurial副本? 我們都有自己的用戶目錄,例如/ home / Cassie,/ home / John,...和/ home / Joe。

2)SSH必須嗎? 或者它取決於用戶和服務器之間的連接類型? 因為我們都在服務器上工作,所以不需要SSH嗎?

非常感謝你,

有兩件事可以稱為“mercurial服務器”。

一個是社交約定,“共享驅動器上的存儲庫X是我們的公共存儲庫”。 您可以安全地推送和拉到該已安裝的存儲庫,並將其用作開發的常用“主干”。

第二種可能是允許mercurial遠程連接的特定軟件。 很多選項可供您自己設置,以及其他遠程主機的選項。

查看第一個鏈接以獲取不同連接選項的列表。 但作為#2的具體答案:不,您不需要使用SSH,但如果您在使用它的環境中,它通常是最簡單的選擇。

您可能想要使用的術語,而不是“mercurial server”,是“遠程存儲庫”。 這個術語用於描述推送/拉/克隆/傳入/傳出/其他 - 我忘記命令的“其他存儲庫”(你沒有執行命令的存儲庫)。 遠程存儲庫可以是同一磁盤上的另一個存儲庫,也可以是網絡上的某個存儲庫。

通常,您使用一個共享存儲庫來共享不同開發人員之間的代碼。 雖然您在技術上不需要它,但它的優勢在於,當新軟件有一個位置時,它更容易同步。

在最簡單的情況下,這可以是簡單文件共享上的存儲庫,可以在其中進行文件鎖定(NFS或SMB),其中每個開發人員都具有寫訪問權限。 在這種情況下,不需要在服務器上安裝mercurial,但有一些缺點:

  • 每個開發人員必須安裝一個mercurial版本,它可以處理共享上的repo版本(例如,當使用mercurial 1.9創建共享上的repo時,1.3的開發人員無法訪問此repo)
  • 每個開發人員都可以對共享倉庫發布破壞性操作,包括刪除整個倉庫。
  • 你不能在這樣的repo上可靠地運行鈎子,因為鈎子是在開發者機器上執行的,而不是在服務器上執行的

我建議使用http或ssh方法。 你需要在服務器上安裝mercurial(我不考慮http-static方法,因為你不能進入http靜態路徑),並獲得以下優點:

  • 服務器上的mercurial版本不需要與客戶端相同,因為mercurial使用與版本無關的有線協議
  • 您無法通過這些協議執行破壞性操作(您只能將新修訂附加到遠程倉庫,但永遠不會刪除任何修訂)

http和ssh之間的決定取決於您本地的網絡環境。 http具有繞過許多企業防火牆的優點,但是當你想通過http將東西推回服務器時(或者不希望每個人都看到內容)時,你需要注意安全身份驗證。 另一方面,ssh的缺點是您可能需要保護服務器,以便客戶端無法在那里運行任意程序(這取決於您的客戶端的可信度)。

我第二個Rudi的回答是你應該使用http或ssh訪問主存儲庫(我們在工作中使用http)。

我想解決你關於“mercurial-server”的問題。

基本的Mercurial軟件確實提供三種服務器模式:

  1. 使用hg serve ; 這是一個單一的存儲庫,我認為它更適用於快速黑客攻擊(當主服務器關閉時,你需要從同事那里獲取一些更改)。
  2. 使用hgwebdir.cgi ; 這是一個可以與HTTP服務器(如Apache)一起使用的cgi腳本; 它可以服務多個存儲庫。
  3. 使用ssh(Secure Shell)訪問; 我對它知之甚少,但我認為設置比hgwebdir變體更難

還有一個名為“mercurial-server”的獨立軟件包。 這是由另一家公司提供的; 它的主頁是http://www.lshift.net/mercurial-server.html 據我所知,這是一個管理界面,選項3,mercurial ssh服務器。

所以,不,你不需要安裝mercurial-server; mercurial包已經提供了一個服務器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM