任何工作二进制不同工具实现GDIFF(通用Diff格式,非图形文件差异)?

时间:2012-03-03 11:49:34

标签: command-line-tool binary-diff

我在wikipedia中看过GDIFF(通用差异格式),我徘徊在那里有任何命令行工具实现这个标准。我现在最好的是LibXDiff,但它是一个库,我需要一些额外的工作才能让它运行。

我知道二进制差异,VCDIFF(xdelta等)和bsdiff会有更好的压缩率,但在我的情况下我真的需要一个直接的压缩率。 VCDIFF在当前窗口之前复制任何内容(如果我的英文阅读能力差this篇),bsdiff的补丁文件格式会更复杂。

更新

最后我发现使用xdelta3的VCDIFF实际上很好并且正常工作,当“禁用小字符串匹配”和“禁用外部解压缩”被切换时,它有一个非常好的“printdelta”命令打印非常有用(对于我的应用程序) )这些信息使我无法从补丁文件中提取VCDIFF格式。

1 个答案:

答案 0 :(得分:3)

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

我写了一次wrapper around it来支持目录修补(目录的GDIFF文件打包成一个ZIP补丁)。