Git предлагает эти 4 алгоритма сравнения, но без дополнительной информации, в чем их отличия.
Каковы преимущества каждого из этих алгоритмов? Есть ли сравнение различных случаев, когда алгоритмы работают по-разному?
Git предлагает эти 4 алгоритма сравнения, но без дополнительной информации, в чем их отличия.
Каковы преимущества каждого из этих алгоритмов? Есть ли сравнение различных случаев, когда алгоритмы работают по-разному?
Я думаю, что поддерживается несколько алгоритмов, потому что ни один из алгоритмов не является лучшим выбором во всех случаях.
Различия заключаются в удобочитаемости выходных данных исправления и времени обработки, необходимом для создания исправления.
Подводя итог, вот что я понимаю, различия:
Вот сравнение скорости Майерса, терпения и гистограммы: http://marc.info/?l=git&m=133103975225142&w=2
Вот сравнение разностного вывода гистограммы и Майерса: http://marc.info/?l=git&m=138023003519837&w=2
diff
. В то время, когда Git начал использовать свою собственную версию xdiff
, чтобы избежать накладных расходов на разветвление diff
, алгоритм xdiff
был сильно изменен Майерсом и назывался Майерсом.
- person underscore_d; 09.01.2019
Хотя сравнивая только 2 алгоритма: Майерс и гистограмму, это может помочь. Исследование, проведенное Нугрохо и др., выявило уровень расхождений между обоими diff
алгоритмами. В исследовании было проведено 3 сравнения, а именно метрики, алгоритм SZZ и патчи. Из сравнения метрик и СЗЗ мы видим большие различия между Майерсом и гистограммой в количестве различных идентифицированных изменений кода. Это правда, что ни один из этих diff's
не является неверным в описании изменений. Тем не менее, из сравнения ручных исправлений алгоритм гистограммы обеспечивает разумный результат diff
лучше для описания намерений человека изменить.