免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6022 | 回复: 6
打印 上一主题 下一主题

c++ 实现增量更新? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-04-25 11:04 |只看该作者 |倒序浏览
本帖最后由 zsxzy317 于 2012-04-25 11:08 编辑

近期做的一个项目,最终生成文件较大, 需要实现增量更新。。。

google 了一把,搜索到 xdelta ,一个开源二进制补丁工具

目前我的想法是这样:
1, 比较新版和老版本, 如新增文件, 直接拷贝到文件夹 diff_dir; 如删除了文件, 在 diff_dir里面建立一个txt, 简单的记录删除文件的路径
2, 用xdelta  为所有文件作diff
3, 打包diff_dir, 老版本根据这个文件做更新

各位兄台有没有更好的实现方法?


======
xdelta 用法

生成补丁:xdelta delta [母盘文件] [目标文件] 生成的差异文件[补丁文件]

应用补丁:xdelta patch 生成的差异文件[补丁文件] [母盘文件] [目标文件]

官方主页:http://xdelta.org/

其中delta是生成补丁文件必备参数patch 是应用补丁的必备参数;-m用来设置内存缓冲大小

论坛徽章:
0
2 [报告]
发表于 2012-04-25 11:11 |只看该作者
07年的id,只有1个小时,真是奇迹,瞎我狗眼
------
3个选择

1.用base64对二进制编码,然后再配合diff/patch工具来,这个好像简单些。
2.当然,你还可以搞搞git这些版本管理
3.rsync这些都有增量更新机制,基本就完成你的任务了

论坛徽章:
0
3 [报告]
发表于 2012-04-25 11:26 |只看该作者
  我还有几个CU帐号,其他的忘记了, 这个是07年还在上学时注册的

论坛徽章:
0
4 [报告]
发表于 2012-04-25 11:26 |只看该作者
什么叫 "增量更新" ?

论坛徽章:
0
5 [报告]
发表于 2012-04-25 11:34 |只看该作者
增量更新是指在进行更新操作时,只更新需要改变的地方,不需要更新或者已经更新过的地方则不会重复更新,增量更新与完全更新相对。这种更新的概念应用范围比较广泛,凡是需要进行数据更新的地方都会用到,如软件更新、数据库更新、杀毒软件的病毒库更新、CMS更新和路由表更新等。

论坛徽章:
0
6 [报告]
发表于 2012-05-06 21:35 |只看该作者
zsxzy317 发表于 2012-04-25 11:34
增量更新是指在进行更新操作时,只更新需要改变的地方,不需要更新或者已经更新过的地方则不会重复更新,增 ...


这个特别简单,不需要第三方库,
枚举所有文件,for 循环比对一下文件内容,然后copy就完了,

论坛徽章:
0
7 [报告]
发表于 2012-05-06 21:43 |只看该作者
本帖最后由 三月廿七 于 2012-05-06 21:47 编辑

这才需要几行代码吗?
c++er 写代码, 怎么动不动就想着第三方库?
以我500行/天的速度,2天连测试都搞定了

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP