Можно ли контролировать, как инструменты слияния распознают похожие блоки кода? Особенно мелд, но любые предложения альтернативных инструментов также приветствуются. Если это уместно, я использую mercurial.
Я работаю над системой, в которой есть генератор кода, генерирующий начальные функции получения/установки, и довольно распространенная ситуация заключается в том, что каждый из двух разработчиков добавил поле, а новые функции получения/установки генерируются в конце библиотеки. Когда дело доходит до слияния, возникает неизбежный конфликт слияния.
Я бы хотел, чтобы инструмент слияния распознавал их как отдельные функции, а не модифицированные версии одной и той же функции.
По крайней мере, Meld начинается с достаточно красивого представления, показывающего функции, добавленные в каждую версию:
К сожалению, после того, как я наткнулся на первое, теперь он думает, что функции были изменены в одной системе, вместо того, чтобы рассматривать их как две отдельные функции. Это также тот же результат слияния, который я вижу изначально в KDiff3: