(注意:由于严格的防火墙,我看不到屏幕截图)。
您提到每次“非常旧并且已经公开”的变更集都会发生错误。这应该会提示您为什么会收到错误消息。
Mercurial 中的变更集有 3 个可能的阶段:
- public : changeset is visible on a public server
- draft : changeset is not yet published
- secret : changeset should not be pushed, pulled, or cloned
处于draft
并且secret
被认为是可变的变更集,也就是说,您可以更改它们的历史记录、修改它们(例如,可能更改作者)等等。
位于的变更集public
被认为是不可变的,当它们处于此阶段时,您“不能”更改它们的任何内容。原因是,它们已经被外界看到了,所以如果你进行任何修改,可能会导致问题。理论上,您不能删除公开的变更集 - 如果您尝试更改它,您只需创建另一个变更集。
也就是说,您可以强制变更集的阶段回到draft
这样的状态:
hg phase -d -f <changeset_id>
这将允许您以其他方式重新设置或修改变更集。
但是,这不会删除“外部世界”中的原始变更集......已经存在,并且会直到时间本身结束。它只会创建一个新的,它几乎做同样的事情。
因此,如果您确实尝试解决该问题,您可能会在其位置创建一个新问题。
警告:由于我看不到这里的屏幕截图,我可能会稍后修改我的答案。
更新:一个简短的说明 - 看过截图后,这看起来像是一个非常古老的变更集,这让我想知道你想要重新设置什么。正如 Kindread 上面提到的,合并将是你最好的选择。