我想到 hg update
(没有参数)会把我带到当前[未命名]分支的结尾*,但我相信如果另一个是分支,它会尝试越过分支更新,这不是我想做的事。
*我故意避免使用"提示"因为"小费"指的是最近的修订版,无论该命名分支是否有两个或更多头。
我举一些例子。
2 4 (tip)
o------o
/
o---o
\
o---o
1 3
我在1
,但我想更新到3
(分支的末尾我已经开始)。如果我输入hg update
没有参数,它实际上会出现错误消息" abort:crosses branches(merge branches或update --check to force update)"。在某些情况下,甚至可能会说" abort:不是线性更新(合并或更新 - 检查以强制更新)"但我不太清楚触发的是什么(如果你知道,请告诉我)。
如果我hg update --check
它会将我移动到4
(当前命名分支的尖端),这不是我想要的。
我可以检查hg log
以查找3
然后hg up 3
的变更集,但我想在一个命令中执行此操作,因为尝试理解日志很乏味。< / p>
也许revsets可能有用,但我不知道哪一个会帮助我。
那么,如何更新到当前未命名分支的末尾?
答案 0 :(得分:3)
普通hg update
尝试将您带到4(而不是3)因为它总是试图将您带到所请求分支上的最新(技术上“最尖端”)修订版,或default
如果不确定的。因此,无论您是0,1还是3,hg update
始终使用上图说明take me to 4
(假设所有修订都在同一个命名分支上)。
将您带到当前版本的最大后代的转变很棒,但是如果您发现自己在同一个命名分支上的多个头之间导航,通常会考虑在每个分支上删除书签。书签就像是在提交时自动前进的标记,所以如果你这样做:
hg bookmark -rev 3 mybranch
hg checkout mybranch
您最终会得到“书签”mybranch
,随着新的子更改集的添加,它会一直向前移动,您可以随时使用hg checkout mybranch