2

我在wikipedia中看到了 GDIFF(Generic Diff Format) ,我想知道是否有任何命令行工具实现了这个标准。现在我最好的是LibXDiff,但它是一个库,我需要一些额外的工作才能让它运行。

我知道当涉及到二进制差异时,VCDIFF(xdelta, etc) 和 bsdiff 会有更好的压缩率,但就我而言,我真的需要一个直截了当的压缩率。VCDIFF 复制当前窗口之前的任何内容(如果我对这篇文章的英文阅读不佳的话),并且 bsdiff 的补丁文件格式会更复杂。

更新

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

4

1 回答 1

4

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 补丁中)。

于 2012-04-07T14:37:11.543 回答