gpt4 book ai didi

patch - 跳过已应用的补丁时,使 `patch` 返回 0

转载 作者:行者123 更新时间:2023-12-04 03:10:23 30 4
gpt4 key购买 nike

我有一个运行补丁命令的构建工具,如果补丁命令返回非零值,它将导致构建失败。我正在应用一个可能已经或可能尚未应用的补丁,所以我使用 -N选项 patch ,它应该跳过。但是,当它确实跳过时,patch返回非零。有没有办法强制它返回 0,即使它跳过应用补丁?我无法从手册页中找到任何此类功能。

最佳答案

我相信以下配方应该可以解决问题,这是我在相同情况下使用的;

patches: $(wildcard $(SOMEWHERE)/patches/*.patch)
for patch_file in $^; do \
patch --strip=2 --unified --backup --forward --directory=<somewhere> --input=$$patch_file; \
retCode=$$?; \
[[ $$retCode -gt 1 ]] && exit $$retCode; \
done; \
exit 0

这个秘籍循环依赖(在我的例子中是补丁文件)并为每个依赖调用补丁。我所依赖的“技巧”是,如果补丁已经被应用,补丁返回 1,其他错误(例如不存在的补丁文件)的其他更高的数字。补丁手册条目的诊断部分描述了返回码情况。青年会

关于patch - 跳过已应用的补丁时,使 `patch` 返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23395363/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com