![](/img/trans.png)
[英]How to generate and apply git patches correctly in Powershell (vs bash)?
[英]Git apply ignoring failed patches
我有一个bash脚本,可将所有git补丁应用到目录中(该脚本请参见底部)。 每当我在服务器上部署网站时,都会运行此脚本。
我现在遇到了一个问题,即几个星期后补丁会引发错误,并退出脚本并显示错误“补丁不适用”。 有谁知道是否有一种方法可以忽略损坏的/旧的补丁程序,并且可能只是显示一个错误,指出该脚本不再起作用,而不是完全退出该脚本,导致我的网站部署失败?
for file in ${PROJECT_PATH}/${PATCH_DIR}/*.patch; do
if [[ -e ${file} ]]; then
echo -n "Applying patch '${file}' ... "
${RUN_AS} git ${GIT_PROJECT_PATH} apply --directory="${PROJECT_PATH}" --unsafe-paths "${file}"
echo "Done"
fi
done
我看不出它将停止应用补丁的任何原因。 如果失败了,您可能会得到一些错误输出,然后您说“完成”(我认为可能有点误导),然后for将会继续。
我想对于初学者来说,您需要控制补丁是否成功。 像这样(按需要调整):
for file in ${PROJECT_PATH}/${PATCH_DIR}/*.patch; do if [[ -e ${file} ]]; then echo -n "Applying patch '${file}' ... " ${RUN_AS} git ${GIT_PROJECT_PATH} apply --directory="${PROJECT_PATH}" --unsafe-paths "${file}" if [ $? -ne 0 ]; then # there was an error echo git apply of patch $file failed on $GIT_PROJECT_PATH/$PROJECT_PATH else echo "Done" fi fi done
或类似的规定。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.