-
Существует ли готовая программа, способная сравнивать архивы, как diff сравнивает директории? То есть выводить список различий текстовых файлов в тех же форматах, понятных patch. Всё, что я нашёл — предельно примитивные zipcmp и folderdiff, которые только выводят имена различающихся файлов. И советы, как сделать подобный скрипт. Выглядит несложно.
-
Форматы документов ODT и DOCX — набор файлов XML в архиве ZIP. Подобный diff мог бы помочь сравнивать офисные документы. Почему его до сих пор не сделали? Содержимое XML при многократных сохранениях слишком сильно преобразуется? Много случайного мусора? Элементы тасуются в произвольном порядке?
-
А что если обобщить? Пусть архив будет форматом-контейнером (OLE, RIFF, PNG, что ещё можете предложить…), а сравниваемое содержимое — любыми данными, для которых текстовый diff или побайтное сравнение несёт какую-то человекочитаемую информацию, и патч можно легко наложить/откатить. Так кто-нибудь делал?
Никакую практическую задачу не решаю. Просто в очередной раз столкнулся со сравнением бинарных документов, стало любопытно.
ОТВЕТ: Судя по скриншотам, это умеет diffoscope: https://diffoscope.org https://try.diffoscope.org
Хотя в комментариях пишут, что его подход может не быть оптимальным для сравнения XML. Попробую как-нибудь.