Previous Entry Share Next Entry
2016-01

Про диффы и патчи

Диффалки текста (или последовательностей) меня удручают. их много, и они разные. ну, то есть, дают разный результат, и непонятно, как между ними выбрать.

Плюс диффалки текста и диффалки списков — это две большие разницы, потому что "адекватные" диффалки текста используют эвристики из разряда "стараться не разбивать слова на куски, стараться не разбивать предложения на куски" и т.д.

Хотя, надо отметить, у вики-маньяков дифф настолько крутой, что осмысленно диффает JSON. Например, детектит перемещения поддеревьев ненамного хуже случая, когда обьекты в JSON явным образом аннотированы.

Сраный перфекционизм мешает выбрать, как обычно. Раньше я как-то жил с велосипедами и jsondiffpatch, а теперь снова вспомнил про sequences, и мучаюсь %)

А еще wikidiff это 4500 LOC логики, нещадно перемешанной с UI, json-diff-patch 3500 LOC, плюс еще diff3 нужен, а есть еще xdiff от dominictarr, где diff, patch и diff3 - 600 LOC. Вот и думай тут.

Хотя xdiff я уже сломал и зарепортил ломающийся тест :)

This entry was originally posted at http://wizzard.dreamwidth.org/403795.html. It has comment count unavailable comments. Please comment there using OpenID.

  • 1
madf November 19th, 2014
А чем просто patch/diff не устраивает? patch'у вообще должно быть фиолетово что там в диффе, а нормальные текстовые редакторы умеют парсить выхлоп diff и красиво его показывать.

wizzard0 November 19th, 2014
Тем, что мне нужна автоматика, и диффать-патчить-мержить оно должно JSON, а не текст. Но в этом JSONе встречается текст, который тоже хорошо бы уметь хорошо диффать.

См. google docs и прочие синхронные редакторы.

И да, я знаю про operational transformations, но от них меня тошнит (хотя да, я даже понял как они работают, и даже имплементацию свою сделал, но всё равно тошнит)

madf November 19th, 2014
Я, видимо, не совсем понимаю проблему. Нужна хорошая визуализация диффов, просто патчи или хитрый мерж из нескольких источников?

beldmit November 19th, 2014
Недавно тут пытался vimdiff-ом просмотреть дифф двух ASN1-структур побайтовый, переведя их предварительно в текстовый вид. Отличий байтов 5-6 из 40, но штатно это все не работает. Пришлось глазами...

wizzard0 November 19th, 2014
Рекомендую глянуть на ту вики-диффалку, она очень крутая, я поражен.

  • 1
?

Log in

No account? Create an account