Утилиты для слияния файлов
Dec. 7th, 2012 05:37 pmКто бы мог подумать, но существуют такие текстовые файлы, которые не могут корректно сравнить и слить ни meld, ни kdiff3 ни diffuse ни даже хваленный виндозный араксис мэрж, и diff который нетбинсе - в ту же топку. Крышу сносит всем и под любой операционкой, при том что на 80% файлы одинаковы.
Я бы привел пример, но к сожалению, когда что-то в файлах меняешь хоть 1 символ, то все эти утилиты внезапно начинают работать более корректно.
По всей видимости, баги происходят от того, что для слития требуется одновременное сравнение как построчно, так и посимвольно, однако, к примеру, meld плющит и там где наблюдается посимвольное совпадение. Тупо в самом начале файла 20символов совпадают, а он их подсвечивает как разные. Лезеш в конец файла, меняешь там символ - начинает показывать совпадение в начале. Барабашка.
Сижу пишу собственный diff. Трындец.
Я бы привел пример, но к сожалению, когда что-то в файлах меняешь хоть 1 символ, то все эти утилиты внезапно начинают работать более корректно.
По всей видимости, баги происходят от того, что для слития требуется одновременное сравнение как построчно, так и посимвольно, однако, к примеру, meld плющит и там где наблюдается посимвольное совпадение. Тупо в самом начале файла 20символов совпадают, а он их подсвечивает как разные. Лезеш в конец файла, меняешь там символ - начинает показывать совпадение в начале. Барабашка.
Сижу пишу собственный diff. Трындец.
no subject
Date: 2012-12-07 11:20 pm (UTC)no subject
Date: 2012-12-08 10:32 am (UTC)В meld я про один из багов (в других утилитах такой баг не встречается) отписал в багрепорт, и мне ответили, что это вовсе не бага а фича, причем, сделаная для моего же блага - чтобы комп не тормозил. Если есть частично совпадающий большой кусок, то начиная с некоторого размера посимвольное сранение отключается. Вот такая бага для блага. :) Но это только в meld воспроизводится.
https://bugzilla.gnome.org/show_bug.cgi?id=689855
там приаттачен пример, но в нем все поредактировано и лишнее поерзано. Так что это уже совсем не те файлы. Но вобщем суть та же. В одном файле есть строки вида
строка =значение
строка =
В другом все без значений:
строка =
Но таких строк больше. Diff-ом планировалось дополнительные строки из файла 2 добавить в файл 1, не потеряв при этом то, что там есть после знака =
То есть задача состояла в слиянии не только строк, но и их частей. У большинства редакторов с этим туго. Проще своим скриптом.
no subject
Date: 2012-12-09 09:59 am (UTC)Ну и резать фалйы и сравнивать покусочно тоже можно. И старый консольный diff тоже никто не отменял, может он здесь надежнее всего?
no subject
Date: 2012-12-10 07:40 am (UTC)Я думал почему так. Там, конечно, слияние сложней обычного - надо не просто строки добавить, а части строк. Все же, это уже не совсем слияние, а нечто более сложное. Ни одна утилита не является удобной для слияния строк фрагментами. В пользовательском интерфейсе нету кнопочек переноса в результирующий файл фрагмента строк.
no subject
Date: 2013-01-19 10:50 am (UTC)еще есть его сборка +многополезныхпрог - PowerUser
в самом тотале есть сравнивалка по содержимому, внутренний инструмент, хороший
+ в сборке есть сравнивалка - Beyond Compare, замечательный