Слияние - могу ли я изменить то, что признано похожим

Можно ли контролировать, как инструменты слияния распознают похожие блоки кода? Особенно мелд, но любые предложения альтернативных инструментов также приветствуются. Если это уместно, я использую mercurial.

Я работаю над системой, в которой есть генератор кода, генерирующий начальные функции получения/установки, и довольно распространенная ситуация заключается в том, что каждый из двух разработчиков добавил поле, а новые функции получения/установки генерируются в конце библиотеки. Когда дело доходит до слияния, возникает неизбежный конфликт слияния.

Я бы хотел, чтобы инструмент слияния распознавал их как отдельные функции, а не модифицированные версии одной и той же функции.

По крайней мере, Meld начинается с достаточно красивого представления, показывающего функции, добавленные в каждую версию:

Исходное состояние слияния

К сожалению, после того, как я наткнулся на первое, теперь он думает, что функции были изменены в одной системе, вместо того, чтобы рассматривать их как две отдельные функции. Это также тот же результат слияния, который я вижу изначально в KDiff3:

Не то, что я хочу!


person asc99c    schedule 05.09.2012    source источник


Ответы (1)


С помощью KDiff3 вы можете вручную размещать метки синхронизации, чтобы заставить его считать строки равными. См., например, этот ответ и снимки экрана.

person hlovdal    schedule 05.09.2012