Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial ';无法删除已应用修补程序';(反复无常)_Mercurial - Fatal编程技术网

Mercurial ';无法删除已应用修补程序';(反复无常)

Mercurial ';无法删除已应用修补程序';(反复无常),mercurial,Mercurial,当我执行hg qnew name.patch>hg qrefresh>hg qfinish name.patch时,我会得到“无法删除应用补丁上面的版本143047”。我可以在此处看到复制的错误消息: 然而,我正在努力找出如何纠正这一点,以便我可以提交一个补丁进行审查。有人能帮我吗?问题很可能是您的修补程序队列中有多个修补程序。我的猜测是,在开始之前,存储库看起来是这样的: ... [x] --- [y] --- <p> 当您运行hg qfinish时,您要求Mercurial进

当我执行hg qnew name.patch>hg qrefresh>hg qfinish name.patch时,我会得到“无法删除应用补丁上面的版本143047”。我可以在此处看到复制的错误消息:


然而,我正在努力找出如何纠正这一点,以便我可以提交一个补丁进行审查。有人能帮我吗?

问题很可能是您的修补程序队列中有多个修补程序。我的猜测是,在开始之前,存储库看起来是这样的:

... [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]