2010-01-21 94 views
3

Mercurial的網站有關創建一個項目這樣說:Mercurial在創建本地存儲庫時是否創建服務器進程?

創建一個項目,並承諾

$ hg init (project-directory) 
$ cd (project-directory) 
$ (add some files) 
$ hg add 
$ hg commit -m 'Initial commit' 

我需要一個單一的用戶,本地倉庫。我認爲這是訣竅,對吧?我不明白的是:它會打開一個服務器進程,還是每次調用它時都會執行所有工作?

+0

您可能需要更改帖子的標題以反映您的實際問題,以便稍後人們搜索時更容易找到它。 – Omnifarious 2010-01-21 07:38:04

+0

如果您能想到更好的標題,請隨時更改。我想不出一個。 – Geo 2010-01-21 07:39:26

+0

「Mercurial在創建本地存儲庫時是否創建服務器進程?」 – Omnifarious 2010-01-21 07:40:50

回答

10

hg二進制文件每次調用時都會執行所有的工作。

hg並不需要服務器。您可以使用hg serve命令輕鬆創建一個命令,但這與其他人進行交互的意義更強,默認情況下它不允許寫入權限。

Mercurial很長一段時間沒有寫權限的服務器存活下來。一個分散的VC系統實際上並不需要一個,或者至少它不是靠中央系統的絕對要求。每個人都只是寫信給他們的本地存儲庫,然後將他們的更改通告給其他人(比如'官方'樹的維護者)。

事實上,即使您有一箇中央服務器可以推送到,您仍然會在推送它們之前將更改提交到本地存儲庫。推送更像是同步數據庫,而不是像您如果習慣Subversion或Perforce之類的事情那樣提交。

Mercurial在當前目錄或父目錄或父級的父級等中查找名爲.hg的目錄以確定它是否位於Mercurial存儲庫中。 hg init命令將適用於沒有任何管理權限的用戶。

0

這幾乎是訣竅。但是,你指的是什麼服務器進程?

+0

我知道例如SVN有一個服務器,每個人都在提交。我只想知道我是否可以開始工作,不用擔心服務器。 – Geo 2010-01-21 07:40:04

3

沒有服務器進程,二進制確實在做所有的工作。那是DVCS:你在本地工作;您的項目目錄同時在工作目錄存儲庫中。

直到你開始分享你的代碼,沒有服務器的任何地方。

+0

所以沒有額外的設置要做?如果我以這種方式創建項目,hg將始終知道我正在處理本地存儲庫?順便說一句,這項工作將在用戶沒有管理權限的計算機上工作嗎? – Geo 2010-01-21 07:38:57

+1

@Geo:是的,是的。在Mercurial中,你總是在本地回購。與其他人共享代碼只是兩個存儲庫的同步(「推」和「拉」)。您總是*首先*提交給您自己的本地存儲庫,然後*(也許)將回購更新推送到別處。至於管理權限:所有內容都保存在'project-directory'下的目錄結構中,所以只要你有寫入權限,你就可以。 – balpha 2010-01-21 07:48:14

相關問題