如何与Mercurial“切换”

如何在Mercurial中执行svn switchfunction?

那是改变我的工作目录切换到存储库中的另一个分支?

 hg update -r<REV> 

更新命令将切换到指定的修订版本。

switch命令在Subversion中做了两件事:

  1. 更新工作副本以在存储库中镜像新的URL。 这种行为与“ svn update ”类似,并且是将工作副本移动到同一个存储库中的分支或标记的方式。

  2. 重写工作副本URL元数据以仅反映语法更改。 这在存储库的根URL更改(例如scheme或主机名更改)时使用,但工作副本仍反映同一存储库中的相同目录。

如果从Subversion中的/trunk /branches/foo切换到/branches/foohg update foo命令与前者最接近。

如果你想做后者,那么只需编辑.hg/hgrc 。 你会发现一个[paths]部分,看起来像这样:

 [path]
默认= http://example.net/something

你可以改变这个默认的推/拉URL到其他的东西,你认为合适的。 如果您经常需要从其他位置推/拉,也可以将其他条目添加到此部分。 如果您想从一个位置拉出,但是推到另一个位置,则添加一个default-push入条目。

我想切换分支,请执行以下操作:

首先检查哪些分支可用,inputhg branches 。 这将列出所有可用的分支。

接下来确定您当前正在使用哪个分支,键入hg branch 。 这将告诉你什么是你目前的分支。

最后要切换分支( 并擦除所有本地更改 ),请键入hg update -C name-of-branch 。 这会将您切换到您指定的分支名称。

再次inputhg branch来validation。

切换到远程分支“提示”:

 hg pull -u <remote_branch> 

对于本地分支(已经是最新的)只是:

 hg update -r <local_branch> 

备用的答案,如果“分支”的意思是“另一个生活在networking上的任意位置的回购克隆”:你不能。

换句话说,在hg.a.com上有一个repo,而这个repo hg.b.com的克隆,没有像

 hg switch hg.b.com . 

(在那里使用svn的说法,假设你的当前目录是hg.a.com的克隆的根目录)。

但是,您可以克隆hg.a.com,在本地克隆该克隆(这应该相对便宜),然后从hg.b.com中提取可能存在的其他更改。