Примеры различных результатов, полученных с помощью стандартного (Майерса), минимального алгоритма, алгоритма терпения и алгоритма сравнения гистограмм.

Git предлагает эти 4 алгоритма сравнения, но без дополнительной информации, в чем их отличия.

Каковы преимущества каждого из этих алгоритмов? Есть ли сравнение различных случаев, когда алгоритмы работают по-разному?


person Petr    schedule 13.11.2013    source источник


Ответы (2)


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

Различия заключаются в удобочитаемости выходных данных исправления и времени обработки, необходимом для создания исправления.

Подводя итог, вот что я понимаю, различия:

Вот сравнение скорости Майерса, терпения и гистограммы: http://marc.info/?l=git&m=133103975225142&w=2

Вот сравнение разностного вывода гистограммы и Майерса: http://marc.info/?l=git&m=138023003519837&w=2

person jelle foks    schedule 25.11.2013
comment
Алгоритм Майерса не является исходным алгоритмом. Оригинальный алгоритм сравнения принадлежит Дугласу Макилрою из 1974 года, он же изобретатель пайпа. - person schily; 02.10.2018
comment
@schily Вот почему он говорит, что исходный алгоритм реализован в xdiff, а не исходный исполняемый файл diff. В то время, когда Git начал использовать свою собственную версию xdiff, чтобы избежать накладных расходов на разветвление diff, алгоритм xdiff был сильно изменен Майерсом и назывался Майерсом. - person underscore_d; 09.01.2019

Хотя сравнивая только 2 алгоритма: Майерс и гистограмму, это может помочь. Исследование, проведенное Нугрохо и др., выявило уровень расхождений между обоими diff алгоритмами. В исследовании было проведено 3 сравнения, а именно метрики, алгоритм SZZ и патчи. Из сравнения метрик и СЗЗ мы видим большие различия между Майерсом и гистограммой в количестве различных идентифицированных изменений кода. Это правда, что ни один из этих diff's не является неверным в описании изменений. Тем не менее, из сравнения ручных исправлений алгоритм гистограммы обеспечивает разумный результат diff лучше для описания намерений человека изменить.

person YusufUMS    schedule 22.02.2019