как применить патч в Mercurial и показать инструмент сравнения, если не удалось применить - PullRequest
6 голосов
/ 04 ноября 2011

Я хочу применить патч в Mercurial:

hg import patch_name.patch

Но если я получу ошибку abort: patch failed to apply, Mercurial создаст *.rej файлов.

Есть ли способ показать kdiff или vim-diif для исправления конфликта.

Ответы [ 2 ]

3 голосов
/ 04 ноября 2011

Нет способа сделать это. Рекомендуемый подход - открыть файл и файл .rej и вручную объединить их в отклоненные блоки.

2 голосов
/ 12 ноября 2011

Держу пари, что hg возвращает код ошибки. Возможно, вы можете обернуть hg import в сценарий оболочки, который ловит возвращенный код ошибки и делает то, что вы хотите, если произошла ошибка? Что-то вроде:

#!/bin/sh
# run the script by typing `hgimp patch_name.patch`
# $1 below will contain patch_name.patch
hg import $1

# if the return code is not equal to 0, run vimdiff or whatever
if [ ! "$?" -eq '0' ]; then
    # run your diff/cleanup commands here
fi
...