2012-03-03 67 views
1

我看過wikipedia中的GDIFF(Generic Diff Format),我徘徊在那裏有任何命令行工具實現這個標準。現在最好的是LibXDiff,但它是一個庫,我需要一些額外的工作才能使它運行。我知道,當涉及到二進制不同,VCDIFF(xdelta等)和bsdiff會有更好的壓縮率,但在我的情況下,我真的需要一個直接的。 VCDIFF會在當前窗口之前複製任何內容(如果我的英語閱讀能力不佳,大約this文章),並且bsdiff的補丁文件格式會更加複雜。任何工作二進制不同工具實現GDIFF(通用差異格式,非圖形文件差異)?

更新

終於讓我找到VCDIFF與xdelta3實際上是好工作,當「禁用小串匹配」和「禁用外部減壓」被觸發,它有一個相當不錯的「printdelta」命令打印非常有用(對於我的應用程序)的信息,以便我不需要從補丁文件中提取VCDIFF格式。

回答

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補丁)。

+0

謝謝,雖然我還沒有檢查你的實用程序,現在xdelta3適合我。當xdelta3的「printdelta」變得不夠時,我會嘗試你的工具:D – tdihp 2012-04-11 06:19:40