我有一个名为分支的NewFeature,我使用默认分支。我已经对该分支进行了一些提交,现在我想合并它以重新加入默认分支。
现在(每个字母都是提交):
default: A---B
NewFeature: \--C---D
我想要的是什么:
default: A---B-----------E
NewFeature: \--C---D--/
我尝试右键单击目录并选择“Hg Commit ...”。然后我选择了“关闭当前命名的分支”。我收到了这个错误:abort: can only close branch heads
我还在资源库资源管理器中查找了“close branch”选项,但我找不到任何内容。
有人可以帮忙吗? 提前谢谢!
编辑:我向TortoiseHg发布了issue
答案 0 :(得分:41)
您提供的示例更多的是合并而不是真正的关闭。此外,如果它很简单,您可能不希望/需要创建命名分支。
但如果你真的想通过TortoiseHg关闭分支,例如
从现在开始,没有人应该在NewFeature分支上提交任何内容,所以你想关闭它。
你可以在TortoiseHg(我有版本2.3.2)中这样做:
答案 1 :(得分:23)
要合并,您需要一个干净的工作副本 - 没有未提交的更改。合并将放在工作副本中以供审阅,然后您提交工作副本以“完成”合并。
如果你有未提交的更改,你不准备提交,你可以看到暂时搁置这些更改(如果你有适当的扩展)或在其他地方签出一个新的工作副本用于合并。
使用资源库资源管理器:
Update
工作副本转为B
。
在修订历史记录中选择rev D
行。
右键点击转化D
,然后选择Merge with...
。对话框应显示rev B
应为本地rev,D
应为其他rev。
点击合并对话框中的Merge
并解决所有冲突(如果有)。
到目前为止,存储库中没有任何更改 - 您的合并位于工作副本中。因此,如果出现问题,您可以取消合并,恢复工作目录,并在以后或在进行其他一些分支或主干更改后重新开始。
如果在步骤1-4之后一切正常,请单击合并对话框中的Commit
以提交合并。
答案 2 :(得分:15)
对于那些对这个问题的答案感到困惑的人,以下是如何在TortoiseHg Workbench中执行此操作的说明:
NewFeature
分支合并到default
:答案 3 :(得分:1)
在TortoiseHg中,在使用提交对话框之前,必须将您的工作副本更新到要关闭的分支的顶端。
关闭分支将在分支提示之上创建一个新的变更集。
如果您已更新到不在命名分支顶端的变更集,则通常会出现您所描述的错误(abort: can only close branch heads
)。
答案 4 :(得分:1)
你似乎也得到这个错误,分支已经关闭,即试图关闭一个封闭的分支。更有用的错误消息将非常有用。