Git apply игнорируя неудачные патчи - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть скрипт 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 Ответ

0 голосов
/ 21 сентября 2018

Я не вижу причин, по которым он прекратил бы применять патчи.Если произошел сбой, вы можете получить сообщение об ошибке, а затем сказать «Готово» (что, возможно, немного вводит в заблуждение), а затем значение для будет продолжено.

Я думаю, дляДля начала вам нужно проверить, был ли патч успешным или нет.что-то как это (приспособиться к вашим потребностям):

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

или что-то в этом роде.

...