GitHub делает это, я полагаю, выполняя команду git merge some_branch
и проверяя статус возврата; для конфликтующего слияния команда git merge
возвращает 1.
$ git merge test1
Auto-merging HELLO
CONFLICT (content): Merge conflict in HELLO
Automatic merge failed; fix conflicts and then commit the result.
$ echo $?
1
Сделайте это в одноразовой ветке, отталкивая то, что станет базой слияния.
Редактировать: Параметр merge.verbosity
, установленный на «0», также может быть полезным (не уверен, как вы можете применить это к pygit без выделения):
Управляет количеством вывода, показанным стратегией рекурсивного слияния.
Уровень 0 не выводит ничего, кроме окончательного сообщения об ошибке, если конфликты были
обнаружено. Уровень 1 выводит только конфликты, 2 выводит конфликты и файл
изменения. Уровень 5 и выше выводит отладочную информацию. По умолчанию
уровень 2. Может быть переопределен средой GIT_MERGE_VERBOSITY
переменная.
См. Раздел «Конфигурация» справочной страницы на git merge
в http://linux.die.net/man/1/git-merge.