2009-07-20 62 views

回答

57
hg update -r<REV> 

update命令將切換到指定修訂版。

+20

只是注意:如果使用命名(內部)分支,你可以使用-r來切換到分支名稱:'hg update -r ' – quark 2009-07-25 04:42:23

+2

我認爲這需要hg更新-C ,而不是-r。正如@緬甸人在他的回答中所說,hg branches和hg branch命令也很有用。 – andybuckley 2013-09-18 18:16:07

+0

初學者錯誤,確保你先完成了hg pull(這樣你就可以在本地切換到分支) – 2013-12-09 18:18:01

33

交換機命令會在Subversion的兩件事情:

  1. 更新的工作拷貝到一個版本庫的新URL。 這種行爲類似於「svn update」,並順便 移動工作拷貝到分支或標記同一檔案庫中。

  2. 重寫工作副本URL元數據以僅反映語法更改。 這用於存儲庫的根URL更改(例如方案 或主機名更改),但您的工作副本仍反映同一存儲庫中相同的 目錄。

hg update foo命令前相匹配,如果你,比如說,從/trunk Subversion中切換到/branches/foo關係最爲密切。

如果你想做後者,那麼只需編輯.hg/hgrc。你會發現一個[paths]部分看起來像這樣:

 
[paths] 
default = http://example.net/something 

,您可以更改此默認推/拉URL到別的東西,你認爲合適。如果您經常需要從其他位置推/拉,您還可以將其他條目添加到此部分。如果您想從一個位置拉出,但推到另一位置,則添加一個default-push條目。

0

備用答案,以「分支」爲例,您的意思是「存在於網絡上某個任意位置的回購的另一個克隆」:您不能。

換句話說,在給定一個hg.a.com回購,而回購hg.b.com的克隆,有像

hg switch hg.b.com . 

沒有命令(使用SVN的說法還有,假設你當前目錄是hg.a.com的克隆的根目錄)。

但是,您可以克隆hg.a.com,在本地克隆該克隆(這應該相對便宜),然後從hg.b.com中提取以獲取可能存在的其他更改。

+0

我發現向'.hg/hgrc'中的'[paths]'部分添加另一個路徑更容易文件,或者簡單地更改其中列出的默認路徑。有關更多信息,請參閱「hg幫助路徑」。 – 2011-09-14 20:56:35

23

我你想切換分支,請執行以下操作:

首先檢查分支是可用的,類型hg branches。這將列出所有可用的分支。

接下來確定您當前正在使用哪個分支,類型爲hg branch。這會告訴你什麼是你目前的分支。

最後要切換分支(並擦除所有本地更改),請鍵入hg update -C name-of-branch。這會將您切換到您指定的分支名稱。

再次輸入hg branch進行驗證。

+2

請注意,即使您排除-C clean選項,在執行此操作時將刪除任何本地未提交的更改。如果您想保留未提交的更改,請首先擱置它們:o) – 2012-07-23 03:01:34

1

要切換到遠程分支「提示」:

hg pull -u <remote_branch> 

對於本地分支(已經起牀了最新的)只是:

hg update -r <local_branch>