Git apply игнорируя неудачные патчи
У меня есть скрипт 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
1 ответ
Я не вижу никакой причины, по которой это прекратило бы применять патчи. Если произойдет сбой, вы можете получить сообщение об ошибке, а затем сказать "Готово" (я думаю, это может ввести в заблуждение), и тогда 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
Или что-то вдоль этих линий.