我正在寻找一个原生库或者可能是相对简单的算法来为最大1GB的文件创建和应用二进制补丁。这些是二进制数据库导出,遗憾的是没有其他方法可以只获取更改。补丁不需要非常小;更重要的是速度和空间效率(没有bsdiff
)。这些文件的变化通常不到1%,而且我已经很满意10倍的补丁了。
当然,关于这一点已经有很多问题了,但是我现在最大的限制是我需要它是一个开源的许可许可(没有GPL')。出于这个原因,即使我对其特征非常满意,xdelta3
也不是一个选项,也不是rdiff
。
我发现一种合理的工作方法是不导出,而是将数据库文件本身分成块。然后,其中不到20%的版本在两个版本之间发生变化。不幸的是,必须在线使用数据库进行备份,这与我的出口有关。然后它再也不起作用了。
答案 0 :(得分:-1)
HDiffPatch:https://github.com/sisong/HDiffPatch
MIT许可证,可以在Windows,macos,linux,android ...上运行。
支持大型二进制文件或目录之间的差异;
diff和patch都支持在有限内存下运行;
创建补丁:hdiffz -s-1k -c-zlib old_path new_path out_delta_file
(-s代表速度,-m代表deltaSize)
正在应用补丁:hpatchz old_path delta_file out_new_path