Mercurial 如何使力推支尖在水银中?

Mercurial 如何使力推支尖在水银中?,mercurial,Mercurial,我的初始情况与中的情况相似。来自强大的Git背景,我想强制推送我的私有分支(以相同的名称)的清理版本,在那里我已经挤压/折叠了一些提交(使用)。我又做了一次类似的事情,但我做事情的顺序不同: $ hg clone -b private_branch <url> $ hg histedit -r <some_rev> # Fold some commits $ hg push -f # This creates a second branch head on the ser

我的初始情况与中的情况相似。来自强大的Git背景,我想强制推送我的私有分支(以相同的名称)的清理版本,在那里我已经挤压/折叠了一些提交(使用)。我又做了一次类似的事情,但我做事情的顺序不同:

$ hg clone -b private_branch <url>
$ hg histedit -r <some_rev> # Fold some commits
$ hg push -f # This creates a second branch head on the server
$ hg update -r <rev_of_original_branch_head>
$ hg commit --close-branch -m 'Closing this branch in favor of a cleaned-up version'
$ hg push
但我不想重新打开关闭的分支头,我想在打开的分支头上提交

我如何解决这个问题,最好不做任何修改

tip标签是一个特殊的“浮动”标签,它始终标识 存储库中的最新版本

(来自)

这就是为什么
tip
指向涉及已关闭分支的修订


这里真的有问题吗?如果你继续工作,你将在私人部门进行你想做的更改。

解决办法就是简单地做

$ hg update private_branch

将工作目录的父版本设置为新创建的打开的分支标头,远离关闭的分支标头,如
hg parent(s)
所示。虽然我已经“在那个分支上”,但我需要“切换分支”,这对我来说有点不直观,但在这种情况下,我不是在切换分支,而是在单个分支内切换头。与Git中的工作方式完全不同。

问题是,如果我对新克隆进行提交,它将重新打开关闭的分支。我已经对我的问题进行了相应的编辑。不过,感谢您为我澄清了
提示
到底指向了什么!我认为这是一个带有
-b
的bug。我刚刚测试过,如果默认分支有两个头部,并且最近的一个是关闭的,那么不带
-b default
的克隆将更新为较旧的打开头部,而不是关闭的尖端。但是将
-b default
添加到克隆中,它会更新到最近关闭的头部。运行额外的
hg update default
再次选择较旧的打开磁头。
$ hg ci -m "test"
created new head
reopening closed branch head <rev>
$ hg update private_branch