Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial via TortoiseHg-合并一个命名分支,然后关闭它_Mercurial_Tortoisehg - Fatal编程技术网

Mercurial via TortoiseHg-合并一个命名分支,然后关闭它

Mercurial via TortoiseHg-合并一个命名分支,然后关闭它,mercurial,tortoisehg,Mercurial,Tortoisehg,我有一个命名的分支NewFeature,它是由默认分支生成的。我已经对该分支做了一些承诺,现在我想合并它以重新加入默认分支 现在(每个字母都是一个commit): 我想要的是: default: A---B-----------E NewFeature: \--C---D--/ 我尝试右键单击目录并选择“Hg Commit…”。然后我选择了“关闭当前命名分支”。我遇到此错误:abort:只能关闭分支头 我还在repository explorer中查找“close branch

我有一个命名的分支NewFeature,它是由默认分支生成的。我已经对该分支做了一些承诺,现在我想合并它以重新加入默认分支

现在(每个字母都是一个commit):

我想要的是:

   default: A---B-----------E
NewFeature:      \--C---D--/
我尝试右键单击目录并选择“Hg Commit…”。然后我选择了“关闭当前命名分支”。我遇到此错误:
abort:只能关闭分支头

我还在repository explorer中查找“close branch”选项,但什么也找不到

有人能帮忙吗? 提前谢谢


编辑:我在TortoiseHg中发布了一条消息

,在使用提交对话框之前,您的工作副本必须更新到要关闭的分支的尖端

关闭分支将在分支顶端创建一个新的变更集


您描述的错误(
中止:只能关闭分支头
)通常发生在您更新到不在命名分支顶端的变更集时。

要合并,您需要一个干净的工作副本-没有未提交的更改。合并将放置在工作副本中以供审阅,然后您提交工作副本以“完成”合并

如果您有未提交的更改,但不准备提交,您可以考虑暂时搁置这些更改(如果您有适当的扩展名),或者在其他地方签出新的工作副本以用于合并

使用存储库资源管理器:

  • 将工作副本更新为rev
    B

  • 在修订历史记录中选择修订
    D

  • 右键单击rev
    D
    并选择
    Merge with…
    。对话框应显示rev
    B
    应为本地版本,
    D
    应为其他版本

  • 在合并对话框中单击
    Merge
    ,并解决任何冲突(如果有)

  • 到目前为止,存储库中没有任何更改-您的合并在工作副本中。因此,如果出现问题,可以取消合并,恢复工作目录,稍后或在进行其他分支或主干更改后重新开始


    如果在步骤1-4之后一切正常,请单击“合并”对话框中的“提交”
    ,以提交合并。

    您给出的示例更多的是合并,而不是真正的结束。此外,如果是这么简单,您可能不想/不需要创建命名分支

    但是如果你真的想通过陆龟来关闭一家分支机构,例如

  • 您创建了NewFeature分支
  • 然后修改默认分支和NewFeature分支
  • 然后,如果NewFeature分支需要相当长的时间,那么您可能已经将多次默认值合并到NewFeature中(以避免在最终将NewFeature分支合并到默认分支时存在太多差异)
  • 最终,您的新功能完全实现或足够稳定,您将NewFeature分支合并到默认分支中
  • 从现在起,没有人应该在NewFeature分支上提交任何内容,因此您希望关闭它

    您可以在OrtoiseHG中执行此操作(我有版本2.3.2):

  • 当您在新功能分支上时,单击Hg Commit…(无需提交任何内容-或者在最终合并时执行此操作)
  • 单击“分支:新功能”(在顶部以粗体显示)
  • 选择“关闭当前分支机构”

  • 如果分支已关闭,即试图关闭已关闭的分支,则您似乎也会遇到此错误。一条更有用的错误消息将非常有用。

    对于任何对这个问题的答案感到困惑的人,以下是如何在TortoiseHg工作台中执行此操作的说明:

    如何合并要素分支和关闭分支
  • 打开龟甲工作台
  • 从注册表存储库中选择您的存储库
  • 切换到要将分支合并到的分支(本例中为默认值):
  • 用鼠标右键单击要合并并关闭的分支(本例中为NewFeature),然后选择“与本地合并”。这将把
    NewFeature
    分支中的分支更改合并到
    default
  • 您将看到一个确认框,确认您的更改将从一个分支合并到另一个分支,单击步骤下一步,立即提交并完成
  • 现在,您可以从合并了更改的图表中看到,我们现在可以关闭
    NewFeature
    分支,因为我们不再需要它:
  • 将本地文件更新到要关闭的分支机构,在这种情况下,它是
    NewFeature
  • 单击工作台顶部的绿色大勾号“提交”。

  • 在提交窗口中,您应该在注释文本框上方看到要关闭的分支。单击分支名称:

  • 将弹出一个窗口,选择关闭当前分支机构:
  • 现在单击提交。图形应显示分支已关闭:

  • 我已经做了。为了确保这一点,我在存储库资源管理器中右键单击了“D”提交,并选择了“更新…”(带有“放弃本地更改”)。然后,我右键单击存储库目录,选择“Hg提交…”,并选择“关闭当前命名分支”。我按了“提交”,同样的错误也出现了。@sharoz:我的下一步将是从命令行尝试此操作
    hg--debug commit--close branch-m“Closing branch”
    。如果
    debug
    输出没有告诉您任何信息,那么我会尝试
    hg更新--clean
    以确保绝对正确。这对我很有帮助,但我想版本2和版本3之间的外观一定会有所不同。我必须在对话框中单击
       default: A---B-----------E
    NewFeature:      \--C---D--/