“patch”可以是幂等的吗?

“patch”可以是幂等的吗?

可以patch幂等地调用;即,是否存在某些选项组合会导致重复调用与单次调用(对于非空差异)patch具有相同的效果?patch

答案1

有些补丁可以多次应用,因此无法保证这一点;但

patch -N -r- -i your.patch

将申请your.patch,忽略任何已经申请的帅哥。

-N避免尝试恢复已应用的补丁,并-r-跳过将失败的块保存到.rej文件。

具有长选项的等效命令是

patch --forward --reject-file=- --input=your.patch

这样运行的时候,如果patch忽略了帅哥,那就说明失败了。如果唯一的“错误”被忽略了 hunk,它将以代码 1 退出(至少有一个 hunk 失败,或者存在合并冲突);退出代码 2 指示更严重的错误。


¹ 没有上下文的补丁或块,或者添加的行与上下文匹配的地方(例如添加多态函数的补丁,其中声明的前几行与下一个函数匹配)。

相关内容