※ 本篇很雜,完全屬於個人使用導向,所有敘述僅供參考。(部份時期此文將會偷偷隱藏) 本篇出撰於 2010/04/26,因此部份內容僅供參考。如相關程式有更新的、變動,請瀏覽者自行判斷。
EX:
A檔 50MB、B檔 65MB,
經過 xdelta3 判斷察覺A變B時,只需要將A的部份修改20MB就可以補成B!
那時差異檔就會是那 20MB。
他不是用文字模式來辨識相異,所以任何格式的檔案都可以!!
兩個檔案內容差異越小的,差異檔會越小、越容易發佈!
當差異檔比B(更新目的檔)還要大的時候,基本上除非是要掩人耳目秘密交流。(或是特殊情形只提供給已有A檔案的人使用)
否則你直接發佈B,還比發佈差異檔來得划算!
xdelta3 -e -s "舊檔" "要更新的目的檔案" "差異檔案"
xdelta3 -e -s "A.jpg" "B.jpg" "A_to_B_update.diff"
xdelta3 -d -s "舊檔" "差異檔案" "最後會產生的更新檔案"
xdelta3 -d -s "A.jpg" "A_to_B_update.diff" "B.jpg"
簡單來說有收過舊版本的人,只要下載新的差異檔並執行更新就會產生新版本,且舊版本不會被覆蓋。
對收過舊檔的人來說,更新會比較快速、容易。
因為差異檔通常都比發布的檔案要小很多(差異點越少,產生的檔案越小)
他的原理應該是比對新、舊檔案的相異點,然後產生差異檔(裡面紀錄新舊的差異)。
所以發布者最後只需要發布那個差異檔,就可以讓對方完成更新。
更新的時候只要下載差異檔,然後下指令更新成新的檔案。
舊檔不會被覆蓋,新檔案則會基於「舊檔+差異檔」合成新的檔案。
(在特殊應用的時候,也可以解釋成「指定檔案 + 差異中介檔」可以合成「目的檔案」)
實際測試後他合成後的檔案,除了內容吻合之外。
連 MD5、CRC32...等驗證都會完全符合!可以完全變成一模一樣的新檔案!
對於修改很少的大型檔案來說,是很方便的更新工具。
目前觀察中,只要兩個檔案差異極小,差異檔會比主檔案小。
應該是因為它只紀錄差異部份,在發布更新方面的應用上應該是有益的。