Рассмотрите проект Hg с двумя центральными ветвями/клонами - например. DEV и PRD. Когда кто-то подталкивает исправление к PRD, автоматический сценарий на центральном сервере переходит в DEV и вытаскивает новые изменения. Затем он пытается объединить исправление в DEV.hg автоматическое слияние с diff3
Проблема заключается в том, что инструмент слияния, интегрированный в Hg, ужасен - как только происходят параллельные изменения в том же файле, это не удастся. Возьмем следующий пример:
parent:3,7c
four
five
six
seven
child1:3,7c
four
five5
six6
seven7
child2:3,7c
fourmore
five
six
more
seven
Как вы можете видеть, реальных конфликтов здесь нет. Если мы делаем локальное слияние с kdiff, он решает этот простой случай без ввода пользователем!
Я бы хотел, чтобы центральный сервер мог управлять этими случаями. Я думал об использовании kdiff3 в бесшумном режиме, но я не могу установить kdiff3 на него (это только система CLI, к которой у нас даже нет доступа администратора), но, возможно, есть способ подключить diff3 к слиянию hg, чтобы он может разрешить простые случаи, подобные этому? Я попытался установить «[ui]/n merge = diff3» в hgrc, но он просто выплевывает три версии в stdout. У меня отсутствует какая-то дополнительная конфигурация? Или есть более простой/лучший инструмент?
Большое спасибо