【问题标题】:Mercurial error on commit: "abort: phases.new-commit: not a valid phase name ('')"提交时出现 Mercurial 错误:“中止:phases.new-commit: not a valid phase name ('')”
【发布时间】:2018-12-02 07:31:54
【问题描述】:

我在尝试提交到 Hg 存储库时收到以下错误:

Z:\wormcard_maker>hg commit -m "asdf"
transaction abort!
rollback completed
abort: phases.new-commit: not a valid phase name ('')

这发生在多个不同的存储库中,并且在重新克隆存储库和重新安装 Mercurial 后幸存下来。我可以从另一台计算机(运行 Linux)很好地提交到存储库。

我在 Windows 7 上运行与 TortoiseHg 4.8 一起分发的 Hg 4.8。

【问题讨论】:

  • 这令人振奋;我担心这是硬件问题,因为我在互联网上找不到任何有关它的信息。其他人有同样的问题并不能证明它不是硬件,我猜,但它降低了它的可能性。
  • 相关配置文件对[phases] new-commit = <HERE> 有什么看法?有效条目是草稿、公开和秘密。

标签: mercurial tortoisehg


【解决方案1】:

在 TortoiseHg 中只需设置“文件 - 设置 - 提交 - 新提交阶段”选项。

【讨论】:

  • 谢谢;这修复了它。对 Hg 不够熟悉,无法知道该设置的实际作用;似乎是我应该追查的文档问题。
  • @JamesPicone hg phase --help
【解决方案2】:

我尝试使用the THG setting,但没有成功;只是不断产生同样的错误。 (在执行此操作时,我注意到相位选择的 THG 下拉列表中有一堆空白行;所以我认为 THG 很混乱。)

相反,我手动编辑了我的 HGRC 文件并确保它包含:

[phases]
new-commit = secret

哪个有效。

您显然可以使用draft 等代替secret

【讨论】:

    【解决方案3】:

    其他答案都不适合我 - 即使我在 HGRC 中有 new-commit = secret,它仍然会产生错误。

    我发现的解决方法是这样做:

    hg ci -m "message" --config phases.new-commit=secret
    

    这确实有效,显然是通过覆盖 hg 试图使用的任何无效阶段名称。虽然我不知道为什么。

    我认为这适用于其他 cmets,而不仅仅是 ci(又名 commit)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-07
      • 1970-01-01
      • 1970-01-01
      • 2021-02-11
      • 2017-04-01
      • 2013-12-04
      相关资源
      最近更新 更多