为什么 Hg 不允许您在应用补丁的情况下推送?

Why won't Hg let you push with patches applied?

我不明白为什么 Mercurial 在应用补丁时不让我推送。在我看来,应用的补丁只影响当前工作区,推送不受当前工作区状态的影响。

换句话说,我希望如果我进行了一些提交,然后启动一个补丁队列,然后推送将推送这些提交,并忽略任何与补丁有关的事情。

我意识到这可能 一个很好的理由,我对 mq 工作原理的理解是错误的。那我错过了什么?为什么 Hg 不能只推送当前的传出提交?

您可以通过将 MQ 变更集保密来解决此问题。最简单的方法是将适当的设置添加到 .hgrc,即:

[mq]
secret = true

这将自动使所有 mq 补丁保密。有了它们的秘密,您应该能够正常推送剩余的提交,而不会收到错误消息。

现有的 mq 补丁可以通过 hg phase -f -s <rev> 保密。