Про диффы и патчи
Nov. 19th, 2014 03:00 amДиффалки текста (или последовательностей) меня удручают. их много, и они разные. ну, то есть, дают разный результат, и непонятно, как между ними выбрать.
Плюс диффалки текста и диффалки списков — это две большие разницы, потому что "адекватные" диффалки текста используют эвристики из разряда "стараться не разбивать слова на куски, стараться не разбивать предложения на куски" и т.д.
Хотя, надо отметить, у вики-маньяков дифф настолько крутой, что осмысленно диффает JSON. Например, детектит перемещения поддеревьев ненамного хуже случая, когда обьекты в JSON явным образом аннотированы.
Сраный перфекционизм мешает выбрать, как обычно. Раньше я как-то жил с велосипедами и jsondiffpatch, а теперь снова вспомнил про sequences, и мучаюсь %)
А еще wikidiff это 4500 LOC логики, нещадно перемешанной с UI, json-diff-patch 3500 LOC, плюс еще diff3 нужен, а есть еще xdiff от dominictarr, где diff, patch и diff3 - 600 LOC. Вот и думай тут.
Хотя xdiff я уже сломал и зарепортил ломающийся тест :)
Плюс диффалки текста и диффалки списков — это две большие разницы, потому что "адекватные" диффалки текста используют эвристики из разряда "стараться не разбивать слова на куски, стараться не разбивать предложения на куски" и т.д.
Хотя, надо отметить, у вики-маньяков дифф настолько крутой, что осмысленно диффает JSON. Например, детектит перемещения поддеревьев ненамного хуже случая, когда обьекты в JSON явным образом аннотированы.
Сраный перфекционизм мешает выбрать, как обычно. Раньше я как-то жил с велосипедами и jsondiffpatch, а теперь снова вспомнил про sequences, и мучаюсь %)
А еще wikidiff это 4500 LOC логики, нещадно перемешанной с UI, json-diff-patch 3500 LOC, плюс еще diff3 нужен, а есть еще xdiff от dominictarr, где diff, patch и diff3 - 600 LOC. Вот и думай тут.
Хотя xdiff я уже сломал и зарепортил ломающийся тест :)