繁体   English   中英

Git应用忽略失败的补丁

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM