2009-07-20 63 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>