System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及代码分析,尤其是一种代码版本变更影响确定方法、装置及存储介质。
技术介绍
1、近年来随着互联网的技术发展,前端技术也进入了井喷期,涌现出非常多的前端技术框架,让前端的开发成本变得更低,项目迭代也变得更加便捷,但随之而来的问题也暴露了出来,随着项目的迭代版本越来越多,维护者也变得越来越多,导致旧代码不易维护,新的功能迭代无法精确的评估出影响范围,不仅仅降低了开发者和项目测试人员的工作效率,还容易将有问题的版本带到生产环境中,造成不可预料的问题。
2、为了提高开发者和测试人员的工作效率以及最大程度保障生产环境的安全稳定,现有技术中的代码版本变更影响确定技术大多是后端java技术,而后端java技术需要固定项目类型,无法适配多技术栈环境。
技术实现思路
1、针对现有技术的上述问题,本说明书的目的在于,提供一种代码版本变更影响确定方法、装置及存储介质,以解决现有技术中无法适配多技术栈环境。
2、为了解决上述技术问题,本说明书的具体技术方案如下:
3、一方面,本说明书提供一种代码版本变更影响确定方法,包括:
4、获取用户输入的测试数据,其中,所述测试数据包括项目名称以及待比较版本项目的项目版本;
5、使用所述测试数据获取所述待比较版本项目与稳定版本项目,其中,每个版本项目均包含若干文件;
6、确定所述待比较版本项目与所述稳定版本项目之间的差异数据,其中所述差异数据包括若干变动的文件;
7、将所述
8、根据所述待比较版本项目生成项目依赖树;
9、根据所述重组数据以及所述项目依赖树生成变动对比树;
10、根据所述变动对比树确定所述待比较版本中的影响路由,其中,所述影响路由表征了所述待比较版本项目的变动的文件所在路由中影响的其他文件。
11、作为本说明书的一个实施例,所述确定所述待比较版本项目与所述稳定版本项目之间的差异数据,进一步包括:
12、使用第一合并指令,将所述待比较版本项目与所述稳定版本项目进行第一合并过滤,得到第一区别数据,其中,所述第一区别数据包括所述待比较版本项目相对于所述稳定版本项目的更改内容;
13、使用第二合并指令,将所述待比较版本项目与所述稳定版本项目进行第二合并过滤,得到第二区别数据,其中,所述第二区别数据包括所述待比较版本项目相对于所述稳定版本项目的更改内容目录;
14、根据所述更改内容目录对所述更改内容进行映射,得到所述待比较版本项目相对于所述稳定版本项目的所述差异数据。
15、作为本说明书的一个实施例,所述根据所述测试数据提取待比较版本项目与稳定版本项目,进一步包括:
16、进入所述稳定版本项目对应的文件夹,使用git命令进入并获取所述稳定版本项目;
17、进入所述待比较版本项目对应的文件夹,使用git命令进入所述待比较版本项目,判断所述待比较版本项目是否存在于该文件夹;
18、若存在,则将所述待比较版本项目更新为最新版本;
19、若不存在,则由远端服务器获取所述待比较版本项目。
20、作为本说明书的一个实施例,所述将所述差异数据进行重组,得到重组数据,进一步包括:
21、将所述差异数据进行拆分并按照预设的格式模板进行重组;
22、使用格式转换工具将重组后的差异数据转换为json格式,得到所述重组数据。
23、作为本说明书的一个实施例,述根据所述待比较版本项目生成项目依赖树,进一步包括:
24、确定所述待比较版本项目中的入口文件;
25、将所述入口文件转化为ast词法树;
26、解析所述ast词法树,得到所述词法树中所有的引用文件,其中,所述引用文件包括依赖文件以及第三方文件;
27、过滤所述引用文件中的第三方文件;
28、将所述入口文件作为父节点,所述入口文件的依赖文件作为子节点,构建所述待比较版本项目的项目依赖树中的一段路由;
29、使用上述方式,遍历所述待比较版本项目中所有文件,得到所述项目依赖树中的所有条路由,构建所述项目依赖树,其中每条路由根据多段路由构成。
30、作为本说明书的一个实施例,所述根据所述重组数据以及所述项目依赖树生成变动对比树,进一步包括:
31、使用所述重组数据中变动的文件递推寻找所述项目依赖树中对应文件所在的路由;
32、去除该文件的所在路由中的子节点,保留所在路由中的父节点以及该节点,作为影响路由;
33、使用上述方式寻找所述重组数据中所有文件对应的影响路由,并使用影响路由构建所述变动对比树。
34、作为本说明书的一个实施例,所述获取用户输入的测试数据,进一步包括:
35、将所述测试数据进行拆分,得到项目名称以及待比较版本项目的项目版本;
36、判断所述项目名称是否符合预设的项目名称表单;
37、若符合,则接收所述测试数据;
38、若不符合,则发送输入错误提示。
39、另一方面,本说明书还提供一种代码版本变更影响确定装置,包括:
40、数据获取单元,用于获取用户输入的测试数据,其中,所述测试数据包括项目名称以及待比较版本项目的项目版本;
41、项目提取单元,用于使用所述测试数据获取所述待比较版本项目与稳定版本项目,其中,每个版本项目均包含若干文件;
42、差异比较单元,用于确定所述待比较版本项目与所述稳定版本项目之间的差异数据,其中所述差异数据包括若干变动的文件;
43、数据重组单元,用于将所述差异数据进行重组,得到重组数据;
44、依赖树生成单元,用于根据所述待比较版本项目生成项目依赖树;
45、变动树生成单元,用于根据所述重组数据以及所述项目依赖树生成变动对比树;
46、影响确定单元,用于根据所述变动对比树确定所述待比较版本中的影响路由,其中,所述影响路由表征了所述待比较版本项目的变动的文件所在路由中影响的其他文件。
47、另一方面,本说明书还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现任意一项所述的代码版本变更影响确定方法。
48、另一方面,本说明书还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现任意一项所述的代码版本变更影响确定方法。
49、采用上述技术方案,通过获取用户输入的测试数据,其中,所述测试数据包括项目名称以及项目版本,可以实现获取用户的测试数据,并解析得到项目名称和项目版本;通过根据所述测试数据提取待比较版本项目与稳定版本项目,其中,项目包括若干文件,可以实现提取待比较版本项目与稳定版本项目;通过本文档来自技高网...
【技术保护点】
1.一种代码版本变更影响确定方法,其特征在于,包括:
2.根据权利要求1所述的代码版本变更影响确定方法,其特征在于,所述确定所述待比较版本项目与所述稳定版本项目之间的差异数据,进一步包括:
3.根据权利要求1所述的代码版本变更影响确定方法,其特征在于,所述使用所述测试数据获取所述待比较版本项目与稳定版本项目,进一步包括:
4.根据权利要求1所述的代码版本变更影响确定方法,其特征在于,所述将所述差异数据进行重组,得到重组数据,进一步包括:
5.根据权利要求1所述的代码版本变更影响确定方法,其特征在于,所述根据所述待比较版本项目生成项目依赖树,进一步包括:
6.根据权利要求1所述的代码版本变更影响确定方法,其特征在于,所述根据所述重组数据以及所述项目依赖树生成变动对比树,进一步包括:
7.根据权利要求1所述的代码版本变更影响确定方法,其特征在于,所述获取用户输入的测试数据,进一步包括:
8.一种代码版本变更影响确定装置,其特征在于,包括:
9.一种计算机设备,包括存储器、处理器及存储在存储
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7任意一项所述的代码版本变更影响确定方法。
...【技术特征摘要】
1.一种代码版本变更影响确定方法,其特征在于,包括:
2.根据权利要求1所述的代码版本变更影响确定方法,其特征在于,所述确定所述待比较版本项目与所述稳定版本项目之间的差异数据,进一步包括:
3.根据权利要求1所述的代码版本变更影响确定方法,其特征在于,所述使用所述测试数据获取所述待比较版本项目与稳定版本项目,进一步包括:
4.根据权利要求1所述的代码版本变更影响确定方法,其特征在于,所述将所述差异数据进行重组,得到重组数据,进一步包括:
5.根据权利要求1所述的代码版本变更影响确定方法,其特征在于,所述根据所述待比较版本项目生成项目依赖树,进一步包括:
6.根据权利要求1所述的代码版本变更影...
【专利技术属性】
技术研发人员:朱鹏辉,王琦,郭廷杰,费海鹏,王亚丹,
申请(专利权)人:北京量子之歌科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。