我认为 hg update
(不带参数)会将我移动到当前[未命名]分支的末尾*,但我相信如果另一个是较新的,这不是我想要做的。
* 我故意避免使用“tip”这个词,因为“tip”指的是最新版本,无论该命名分支是否有两个或多个头。
我举一些例子。
2 4 (tip)
o------o
/
o---o
\
o---o
1 3
我位于 1
,但我想更新到 3
(我所在分支的末尾)。如果我输入不带参数的 hg update
,它实际上会出错,并显示消息“abort:交叉分支( merge 分支或更新 --check 以强制更新)”。在某些情况下,它甚至可能会说“中止:不是线性更新( merge 或更新--检查以强制更新)”,但我不太确定是什么触发了这一点(如果您知道,请告诉我)。
如果我执行hg update --check
,它会将我移动到4
(当前命名分支的尖端),这也不是我想要的。
我可以检查 hg log
以找出 3
的变更集,然后找出 hg up 3
,但我想在一个命令,因为尝试理解日志是乏味的。
也许revsets可能有用,但我不知道哪一个对我有帮助。
那么,如何更新到当前未命名分支的末尾?
最佳答案
普通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
返回它
关于mercurial - 如何更新到当前未命名分支的末尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25172888/