利用Git版本管理优化资源更新工具链

资源更新是游戏一个通用模块,把它做得简洁,易于管理便捷非常有必要。

本篇文章,将利用Git标签管理版本,优化工具链。

在这里插入图片描述

在这里插入图片描述

利用git tag和git diff命令可以解决上述 补丁包覆盖方式 的工具链流程繁琐的缺点。

Git tag命令. 利用git标签功能,对版本进行管理。如下图所示

git 节点如下图所示
在这里插入图片描述
git tag执行命令,获得所有标签.然后我们分析标签
在这里插入图片描述

Git diff命令 对比不同标签对应节点的差异,得出补丁包文件列表 过程快速简洁,没有清单记录方式的中间文件,代码也得到极大简洁.
git diff v1.0.0 v1.2.3 --name-status //取得v1.0.0到v1.2.3文件变更列表.
如下图所示:
在这里插入图片描述
D表示删除 A表示新增 M是修改 R表示重命名或移动 100是指文件类型,但不重要.将R处理成D删除和A新增两步。
相关请参考:https://git-scm.com/docs/git-diff

3 写一个脚本 生成所有旧版本到最新版本的zip包。

zip压缩部分,这里笔者用到zip3.0现行的命令行工具
优点:1 支持zip分隔大小,对于没有实现断点续传的客户端来讲,将补丁包分成若干10m小包,即使意外中止更新,更新进度也不会回退太多。
2 支持zip对比更新,若标签节点更新,无须全部重压。
3 参数齐全,比如压缩质量等
4 命令行模式,使得代码简洁.

zip工具,如下图 链接 http://www.mirrorservice.org/sites/www.linuxfromscratch.org/blfs/view/systemd/general/zip.html

用C#写成的 资源更新打包工具 GitVersion 说明截图.
你可以更改你的版本(标签)分析正式表达式,以用来做更多的渠道或平台区分
在这里插入图片描述

执行结果
在这里插入图片描述
采用多线程并行压缩,执行时间只取决于最大包的zip压缩时间,而不包含清单对比算md5或hash值的时间.工具执行效率得到提升

更新包如下图所示,zip包的注释为文件变更列表.客户端仅需要下载update.zip包,删除D标记的条目,即可并解压即可
在这里插入图片描述

资源热更包生成工具链主体代码控制在200行以内。

代码Git自取地址:
https://gitee.com/yixiao2189/GitVersion

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值