如何与Mercurial“切换”
如何在Mercurial中执行svn switch
function?
那是改变我的工作目录切换到存储库中的另一个分支?
hg update -r<REV>
更新命令将切换到指定的修订版本。
switch命令在Subversion中做了两件事:
更新工作副本以在存储库中镜像新的URL。 这种行为与“
svn update
”类似,并且是将工作副本移动到同一个存储库中的分支或标记的方式。重写工作副本URL元数据以仅反映语法更改。 这在存储库的根URL更改(例如scheme或主机名更改)时使用,但工作副本仍反映同一存储库中的相同目录。
如果从Subversion中的/trunk
/branches/foo
切换到/branches/foo
, hg 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中提取可能存在的其他更改。