基于SVN的版本范围汇总

这里的总结适用于线上已运营的产品,在研的游戏项目目前尚未实践过。


一次版本更新主要分为:客户端 + 服务端

客户端:界面(prefab/xml)、代码(lua)、数据配置表(json/lua)、美术资源(3D模型、动作、特效等)

服务端:代码、数据修改对应的SQL语句


Excel的同步我们单独开发一个类似 Beyond Compare 的对比同步工具,解决Windows系统下无法同时打开两个同名文件的问题。


开发规范就是,所有SVN的提交都需要关联 任务id 或 bugId。这样我们有二种方法去抓取更新范围:

(1)从SVN的日志里拉取;

(2)从项目管理系统里拉取;


从SVN日志拉取很简单,就是利用命令

${svn_path} log ${svn_url} --verbose --revision ${svn_start_version}:HEAD --username xxx --password xxx > ${svn_log_file_name}

然后解析 svn_log_file_name(假设是 svn_log.txt),然后根据 taskId 或 bugId 提交信息进行分组,然后将数据渲染出来,得到如下所示的图

image


从项目管理系统里拉也很简单:【任务类型=服务端开发】&【任务状态=已完成】&【项目版本=xxxx】,根据任务id对SVN进行分组。


这样做的目的是为了以后单独提测某个功能时,有完整的svn记录,通过记录自动将代码合并过去然后提交质检进行验收,或者进入【日稳定包】


列表还有一个目的,就是项目可以自定义关注文件列表,比如充值、登录、网络等相关的文件,当某个任务id的提交记录里包括该文件,则对该行记录标粗同时该任务header带上*,表示项目主程、质检、技术经理需要注意了,这个任务关联了通用/关键模块的更新。


列表链接点击后,可以呼起svn版本对比工具,浏览线上版本与即将对外更新版本内容的差异。

tsvncmd:command:showcompare?url1:http://192.168.0.xx/test.java?url2:http://192.168.0.xx/test.java?revision1:线上svn的版本号?revision2:HEAD


*注意事项:所有的项目相关的开发人员,每次SVN提交都需要绑定【所属版本 + 任务单号/bugId】


参考链接:

- https://tortoisesvn.net/docs/nightly/TortoiseSVN_zh_CN/tsvn-automation-urlhandler.html

- https://tortoisesvn.net/docs/nightly/TortoiseSVN_zh_CN/tsvn-cli-main.html#tsvn-cli-showlog

posted @ 2022-01-12 19:31  meteoric_cry  阅读(179)  评论(0编辑  收藏  举报