![“patch”可以是幂等的吗?](https://linux22.com/image/178423/%E2%80%9Cpatch%E2%80%9D%E5%8F%AF%E4%BB%A5%E6%98%AF%E5%B9%82%E7%AD%89%E7%9A%84%E5%90%97%EF%BC%9F.png)
可以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 指示更严重的错误。
¹ 没有上下文的补丁或块,或者添加的行与上下文匹配的地方(例如添加多态函数的补丁,其中声明的前几行与下一个函数匹配)。