有一些商业的软件专门做这方面的增量升级,价格不菲。
这里推荐使用开源代码来解决这个问题,效果比商业软件要好很多。
一.文本文件增量升级
这个比较简单。有多种方法可以实现。
- linux的diff命令
- python自带的标准库difflib
- google-diff-match-patch
- 自己实现
二.二进制文件增量升级
这个也不难。只是选择只有一个了:bsdiff
这个玩意儿很强大,不仅在BSD下面可以用,在linux下面apt-get install bsdiff,也能拿到。windows下也有对应的版本,更有python的扩展。全部通吃。还是bsd的协议,真是爽啊!
------------------------------------------------
得到diff文件只是升级的一部分,还有其他很多要注意的问题。
------------------------
贴个测试数据,大家看看bsdiff的效果。
- WPS从版本1151(184MB)升级到版本1238(181MB)
升级文件: 237
删除文件: 1
总共 : 138 MB (新增加文件+升级文件)
生成升级包:
RTPatch生成的zip包 : 12.6 MB
使用bsdiff后的zip包: 9.11 MB (节省带宽93.4%)
- WPS从版本1238(181MB)升级到版本1239(139MB)
升级文件: 29
删除文件: 625
总共 : 48.4 MB(新增加文件+升级文件)
生成升级包:
RTPatch生成的zip包 : 2.28 MB
使用bsdiff后的zip包: 773 KB(节省带宽98.44%)
——————————————————————————
ps:2008-7-31
微软貌似也有二进制比较的工具,没有仔细研究,感兴趣的去看看这个
ps:2008-8-11
还有这样一个东西,vcdiff:在RFC 3284中进行了描述
1 条评论:
给我写的教程?very good,基本上完成了。
发表评论