[发明专利]一种基于Git的配置生成方法在审
申请号: | 202110533840.4 | 申请日: | 2021-05-17 |
公开(公告)号: | CN113190265A | 公开(公告)日: | 2021-07-30 |
发明(设计)人: | 刘春刚;王伟;鲍瑞敏 | 申请(专利权)人: | 上海云扩信息科技有限公司 |
主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F8/73 |
代理公司: | 北京盛凡智荣知识产权代理有限公司 11616 | 代理人: | 张成文 |
地址: | 200240 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 git 配置 生成 方法 | ||
1.一种基于Git的配置生成方法,使用git对配置文件进行版本管理,各个环境配置文件存放在同一git仓库中,假定为Repo1,其特征在于:具体方法包含以下步骤:
(1).拉取Repo1的最新内容到“Latest”目录下;
(2).拉取上次发版的内容到“Last”目录下;
(3).差异对比,对比Latest下dev配置与Last下dev配置的差异;
(4).将变更内容应用到“Latest”目录下的sit配置文件中去;
(5).对于与环境相关的项,可根据实际情况进行手工修改;
(6).保存变更,将Latest提交到仓库,即完成sit测试环境的配置更新。
2.根据权利要求1所述的一种基于Git的配置生成方法,其特征在于:为了得到各配置项的对应节点关系,自主实现一种快捷的yaml解析方法,具体方法如下:
(1-1).逐行读取yaml文件,当下一行开头的空格数量与前一行相等,则为同级节点;
(1-2).当开头的空格数量大于前一行,则为前一行配置项的子节点;
(1-3).当开头的空格数量,假设为n,小于前一行,则向前查找空格数量小于n的行,此行配置项即是当前行的父节点;
(1-4).当遇到注释行,查找下一非注释行,当下一非注释行开头有n个空格,则该注释行开头空格数也重置为n,即注释行父节点与下一数据行父节点相同,多个注释行连续出现时处理方法同样。
3.根据权利要求1所述的一种基于Git的配置生成方法,其特征在于:为减少时间复杂度,向前查找可替换为另一种算法:
(11-1)、首先将已经遍历的每行空格数进行字典处理,行首有n个空格,则更新dict[n]=当前行的行号,所有行按同样方式进行处理;
(11-2).遍历行进到第10行node10,行首有8个空格,查找父节点,只需获取dict[8]的value(数据为行号),从该value指向的行即是node10的同级节点,根据下述差异对比中提到的key节点名生成方法,将key的末级名称移除即得到其父节点。
4.根据权利要求1所述的一种基于Git的配置生成方法,其特征在于:所述的步骤3中差异对比具体步骤如下:
(2-1).将要对比的两个文件基于上述方法分别解析成list,每个节点作为一个item,插入到list末尾,item使用KeyValuePair类型;
(2-2).key的产生方法为字符串拼接:Node1间隔标记Node2…间隔标记NodeN,其中NodeN可以是末节点key,也可以是注释;
NodeN-1是NodeN的父节点,NodeN-2是NodeN-1的父节点,依次递推;
(2-3).value即原配置项的原始内容,检索当前行的第一个“:”,作为有value的依据,当此“:”前出现了“#”,当无value处理;
其中“间隔标记”是特殊内容,规避配置中的内容即可,基于此可以准确的逆向生成yaml;
(2-4).逐个比较两个list中的keyValuePair,当key相同则是同名节点,否则匹配不到该节点.比较结果分为:
(a).同名节点,value相同;-则两边配置一致,即无变化;
(b).同名节点,value不同;-说明配置项有变更;
(c).Dev的字典中找不到sit的当前key;-Dev的此配置项被删除;
(d).Sit的字典中找不到Dev的当前key;Dev的此配置项为新增。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海云扩信息科技有限公司,未经上海云扩信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110533840.4/1.html,转载请声明来源钻瓜专利网。