2011-09-26 64 views
0

我正在學習如何在我們的團隊系統上安裝Mercurial,但我沒有足夠的經驗來作出一些決定。系統級Mercurial安裝是否足夠用於共享環境?

對於我們的團隊,我們有一臺服務器機器用作存儲庫。每個團隊成員都有自己的Linux RedHat安裝機器。但是,我們在本地終端上不做任何事情,我們在服務器上做所有事情。每個成員在服務器上都有一個用戶目錄,例如/ home/Cassie,/ home/john,並且我們保存所有的代碼並在那裏工作。當我們打開本地終端時,GNOME系統在服務器上顯示我們的個人文件而不是本地機器。無論何時每個人在桌面上點擊終端應用程序,它都會連接到自己的主目錄。因此,我們不需要使用SSH命令連接到服務器。這就像學校的多用戶系統。每個人都有一個用戶帳戶,她登錄到自己的帳戶做自己的工作。我希望我可以在該服務器上安裝一個共享存儲庫,並且每個人都可以在這裏執行所有類型的命令。

1)由於我們使用的是共享環境,這是否意味着我需要在服務器上安裝Mercurial,並且這足以讓每個人都可以執行「commit」,「push」,「pull」等命令?

2)通過僅安裝系統級Mercurial,它是否消除了進行本地提交的能力?如果我想讓每個人都具備「本地承諾」的能力,我該怎麼做?

3)我已經在網上搜索。有人提到,對於共享網絡服務器,如果任何兩個用戶試圖同時訪問同一文件,則不可能鎖定任何兩個用戶。這是否暗示我的情況?

總之,我們在服務器上做所有的工作。我希望找到一個計劃,當每個人都擁有本地提交能力時,對每個人都共享的存儲庫進行Mercurial控制,並且如果任何兩個用戶同時嘗試訪問文件,存儲庫仍具有一些鎖定保護。如果這種情況是可行的,我可以只在服務器上安裝Mercurial,還是需要爲服務器和用戶機器安裝Mercurial?如果這種情況是不可能的,有人請爲我們的系統提供版本控制計劃嗎?

回答

3

1)由於我們使用一個共享的環境,這是否意味着我只需要在服務器上安裝的水銀,它是足夠爲大家做「提交」,「推」,「拉」 .. etc命令?

如果您的用戶正在登錄服務器上的shell以執行其工作,那麼只需在服務器上安裝Mercurial即可。

2)通過僅安裝系統範圍的Mercurial,它是否消除了進行本地提交的能力?如果我想讓每個人都具備「本地承諾」的能力,我該怎麼做?

爲了使用代碼,您的用戶大概會從共享的「根」存儲庫簽出自己的主目錄。他們將在其主目錄中擁有「本地」repo副本,並將推入共享的根存儲庫。

3)我已經在網上搜索。有人提到,對於共享網絡服務器,如果任何兩個用戶試圖同時訪問同一文件,則不可能鎖定任何兩個用戶。這是否暗示我的情況?

只要您的用戶在自己本地的回購副本中工作,他們就不會互相干擾。衝突可能出現的唯一時刻是提交回共享根存儲庫時 - 在這種情況下,用戶需要合併其更改並解決衝突。

爲了更好地理解Mercurial如何處理「中央」和「本地」副本,我建議您通過Joel Spolsky的優秀Hg Init教程仔細閱讀。

+0

太棒了! Hg Init對我的理解非常有幫助。非常感謝你。 – Cassie