如何更新到当前未命名分支的末尾?

时间:2014-08-07 01:32:45

标签: mercurial

想到 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可能有用,但我不知道哪一个会帮助我。

那么,如何更新到当前未命名分支的末尾?

1 个答案:

答案 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

返回到它