Mercurial ';无法删除已应用修补程序';(反复无常)
当我执行hg qnew name.patch>hg qrefresh>hg qfinish name.patch时,我会得到“无法删除应用补丁上面的版本143047”。我可以在此处看到复制的错误消息:Mercurial ';无法删除已应用修补程序';(反复无常),mercurial,Mercurial,当我执行hg qnew name.patch>hg qrefresh>hg qfinish name.patch时,我会得到“无法删除应用补丁上面的版本143047”。我可以在此处看到复制的错误消息: 然而,我正在努力找出如何纠正这一点,以便我可以提交一个补丁进行审查。有人能帮我吗?问题很可能是您的修补程序队列中有多个修补程序。我的猜测是,在开始之前,存储库看起来是这样的: ... [x] --- [y] --- <p> 当您运行hg qfinish时,您要求Mercurial进
然而,我正在努力找出如何纠正这一点,以便我可以提交一个补丁进行审查。有人能帮我吗?问题很可能是您的修补程序队列中有多个修补程序。我的猜测是,在开始之前,存储库看起来是这样的:
... [x] --- [y] --- <p>
当您运行hg qfinish
时,您要求Mercurial进行
定期提交,如下所示:
... [x] --- [y] --- <p> --- [o]
。。。[x] --[y]----[o]
但是,这是一种不可能的情况,因为您不能hg qpop
补丁
,这样做还必须删除变更集[o]
基本上:您必须从修补程序队列的开始,而不是从顶部开始,执行hg qfinish
修补程序
最后:您通常不必为了提交MQ补丁以供审查而将其转换为常规提交。也就是说,您可以在应用的MQ修补程序上运行
hg export
,就像您可以在应用的修补程序上运行hg email
和所有其他命令一样。事实上,应用的补丁已经是常规提交,所有常规命令都可以对它们进行操作。只有hgpush
的行为不同,因为它不允许您推送表示应用的MQ补丁的变更集。好的,非常感谢。有没有一种简单的方法可以让我用补丁队列解决问题,这样我就可以简单地执行hg qnew name.patch>hg qrefresh?此外,只需执行hg qnew name.patch>hg qrefresh,就可以生成一个包含我所有更改(即不执行hg导出等)的补丁,供他人查看吗?@MichaelNares:别忘了投票选出有用的答案。正如我所说,applied MQ修补程序是常规的变更集,因此您可以以任何方式将它们发送给其他人进行审查。MQ允许您稍后返回并修改提交—这就是它添加的全部内容hg export
实际上是准备补丁以供审查的正常方法:接收者可以使用hg import
应用它。评论不需要MQ,MQ是一种工具,您可以使用它来更好地响应评论。
... [x] --- [y] --- <p> --- [o]