Любой рабочий инструмент двоичного различия реализует GDIFF (общий формат различий, НЕ графическая разница файлов)? - PullRequest
2 голосов
/ 03 марта 2012

Я видел GDIFF (Generic Diff Format) в википедии , и мне интересно, есть ли инструмент командной строки, реализующий этот стандарт.Теперь лучшее, что у меня есть, это LibXDiff , но это библиотека, мне понадобится дополнительная работа для ее запуска.

Я знаю, когда дело доходит до двоичного различия, VCDIFF (xdelta)и т. д.) и bsdiff будет иметь лучшую степень сжатия, но в моем случае мне действительно нужна прямая компрессия.VCDIFF копирует все что угодно до текущего окна (если мое плохое чтение по английскому языку было правильным в отношении этой статьи), а формат файла исправления bsdiff был бы более сложным.

update

Наконец-то я обнаружил, что VCDIFF с xdelta3 действительно хорош и работает, когда переключено «отключить сопоставление небольших строк» ​​и «отключить внешнюю декомпрессию», и у него есть довольно хорошая команда «printdelta», которая печатает очень полезно (для моегоприложение), чтобы я не смог извлечь формат VCDIFF из файла патча.

1 Ответ

3 голосов
/ 07 апреля 2012

Javaxdelta библиотека реализует патчи xdelta и GDIFF. Его можно использовать как приложение командной строки, например:

# create patch
java -cp javaxdelta-2.0.1.jar:trove-1.0.2.jar com.nothome.delta.Delta source.file target.file patch.gdiff
# apply patch
java -cp javaxdelta-2.0.1.jar:trove-1.0.2.jar com.nothome.delta.GDiffPatcher unpatched.file patch.gdiff patched.file

Я однажды написал обертку вокруг нее для поддержки исправления каталогов (файлы GDIFF для каталогов упакованы в один ZIP-патч).

...