在 Mercurial 中,我该怎么做svn switch
?
那就是更改我的工作目录以切换到存储库中的另一个分支?
hg update -r<REV>
update命令将切换到指定的版本。
switch 命令在 Subversion 中做了两件事:
更新工作副本以镜像存储库中的新 URL。此行为类似于 '
svn update
',并且是将工作副本移动到同一存储库中的分支或标记的方式。重写工作副本 URL 元数据以仅反映语法更改。这在存储库的根 URL 更改(例如方案或主机名更改)但您的工作副本仍然反映同一存储库中的同一目录时使用。
如果您从Subversion切换到,则该hg update foo
命令与前者最匹配。/trunk
/branches/foo
如果你想做后者,那么只需编辑.hg/hgrc
. 您会找到[paths]
如下所示的部分:
[路径] 默认 = http://example.net/something
您可以将此默认推/拉 URL 更改为您认为合适的其他内容。如果您经常需要从其他位置推/拉,您还可以在此部分添加其他条目。如果你想从一个位置拉,但推到另一个,然后添加一个default-push
条目。
我要切换分支,请执行以下操作:
首先检查哪些分支可用,输入hg branches
. 这将列出所有可用的分支。
接下来确定您当前正在处理的分支,键入hg branch
. 这将告诉您当前的分支是什么。
最后要切换一个分支(并擦除所有本地更改),输入hg update -C name-of-branch
. 这会将您切换到您指定的分支名称。
再次输入验证hg branch
。
要切换到远程分支“提示”:
hg pull -u <remote_branch>
对于本地分支(已经是最新的),只需:
hg update -r <local_branch>
替代答案,如果“分支”是指“位于网络上某个任意位置的回购的另一个克隆”:你不能。
换句话说,给定 hg.a.com 上的 repo,以及该 repo hg.b.com 的克隆,没有类似的命令
hg switch hg.b.com .
(使用 svn 的说法,假设您当前的目录是 hg.a.com 的克隆的根目录)。
但是,您可以克隆 hg.a.com,在本地克隆该克隆(应该相对便宜),然后从 hg.b.com 提取可能存在的任何其他更改。