删除 mercurial 消息 "obsolete feature not enabled but xxx markers found"

Remove mercurial message "obsolete feature not enabled but xxx markers found"

有一段时间我在我们的 Mercurial 存储库中启用了 evolve extension。然后我把它禁用了。

现在我经常看到这样的消息:

obsolete feature not enabled but 184 markers found!

当各种 hg 命令是 运行。

我怎样才能摆脱这条消息?我收集到现在存储库中有 "obsolecense markers",是否可以删除它们and/or 使这些消息静音?

您只需要删除obsstore:

$ rm .hg/store/obsstore

请注意,如果您这样做,您所做的过时提交将再次显示为草稿或 public 更改。

评论指出:

the cleaner solution would be to try to clone the repo again.

(翡翠领主 2019 年 1 月 3 日在 10:48)

这种方法(而不是删除 obsstore)的潜在好处是:

  • 使用正常的内置命令

  • 摆脱过时的变更集,否则这些变更集将保留在历史记录中,可能会造成混乱或混乱。

根据 EVOLVE: USER GUIDE:

...obsolete [changesets] won’t be exchanged with other repositories by push, pull, or clone.

这似乎支持这种做法。我还没有机会尝试一下。

换句话说,步骤应该是:

  • 修改hgrc转为进化
  • hg clone source dest
  • 现在 dest 应该没有任何过时的变更集(并且可能也不会有 obsstore 文件)