Я пытаюсь разработать формат файла diff
для нескольких файлов в папках. Рассмотрим исходный каталог, содержащий исправленные файлы, и целевой каталог, содержащий исходные файлы. Напишите файл минимального размера diff
, который выражает разницу между всеми файлами в исходном и целевом каталогах, который можно применить к исходным файлам для преобразования исходных файлов в пропатченные файлы.
Для этой цели Я нашел библиотеку dtl
. Какой алгоритм или функцию библиотеки следует использовать, чтобы записать на диск файл diff
, который я затем смогу затем прочитать и применить для исправления файла? Любой пример кода для этого? Я попытался записать результат shortest edit script
(SES
) на диск, но понял, что мне нужно указать символ и операцию для каждого байта. Это, конечно, делает выходной файл больше, чем весь файл сравнения, что делает этот разностный формат полностью избыточным, поскольку вместо сохранения всего целевого файла будет сохранено больше места для хранения.
В качестве другой ссылки, это очень похоже на то, как системы контроля версий, такие как git
или svn
, работают, но я не хочу их использовать, так как я в основном имею дело с двоичными файлами и простым требованием создания и применения патчи.