【技术实现步骤摘要】
基于差异代码分析的分支检测方法、装置及存储介质
本专利技术涉及计算机软件开发领域,具体涉及一种基于差异代码分析的分支检测方法、装置及存储介质。
技术介绍
在计算机软件的敏捷开发过程中,持续集成对于时效的要求尤其敏感,比如开发人员需要在第一时间知道本次提交的代码单元是否可以构建、代码检查是否通过、单元测试是否通过等。在大仓库背景下,由于代码数量众多,如果每次都对所有构建单元都进行编译、检查、单元测试等操作,不仅浪费时间、影响机器性能,而且也无法保证检测出的构建失败一定是由于本次提交导致的。另外,不同的构建单元之间会存在依赖关系,例如A单元的功能实现需要调用B单元的接口,则A单元依赖B单元。在代码分支中,很可能会出现主动关联或者被动关联的构建单元发生变更,进而导致与其有依赖关系的其它构建单元功能瘫痪的问题。针对现有技术中构建单元数量庞大,并且相互之间存在复杂的依赖关系的现状,目前尚未提出有效的代码分支检测方案。
技术实现思路
本专利技术的目的是提供一种基于差异代码分析的分支检测方法、装 ...
【技术保护点】
1.一种基于差异代码分析的分支检测方法,其特征在于,包括以下步骤:/n响应于针对代码分支的差异检测指令,获取代码仓库的根目录下所有构建单元之间的依赖关系;/n获取所述构建单元中的差异单元,并根据所述依赖关系获取与所述差异单元相关联的依赖单元,所述差异单元表征所述代码分支中程序文件发生变化的构建单元;/n根据发生变化的类型对所述差异单元进行分类,得到至少一个分类单元;/n分别对所述分类单元和所述依赖单元执行不同的检测操作。/n
【技术特征摘要】
1.一种基于差异代码分析的分支检测方法,其特征在于,包括以下步骤:
响应于针对代码分支的差异检测指令,获取代码仓库的根目录下所有构建单元之间的依赖关系;
获取所述构建单元中的差异单元,并根据所述依赖关系获取与所述差异单元相关联的依赖单元,所述差异单元表征所述代码分支中程序文件发生变化的构建单元;
根据发生变化的类型对所述差异单元进行分类,得到至少一个分类单元;
分别对所述分类单元和所述依赖单元执行不同的检测操作。
2.根据权利要求1所述的分支检测方法,其特征在于,所述获取代码仓库的根目录下所有构建单元之间的依赖关系的步骤包括:
获取引用了当前构建单元的一个或多个其它构建单元,将所述一个或多个其它构建单元作为与所述当前构建单元相关联的依赖单元;
记录所述当前构建单元和所述依赖单元之间的索引关系;
遍历代码仓库的根目录下所有构建单元,获取并记录每个构建单元和与所述每个构建单元相关联的依赖单元之间的索引关系。
3.根据权利要求2所述的分支检测方法,其特征在于,所述获取代码仓库的根目录下所有构建单元之间的依赖关系的步骤还包括:
根据所述索引关系生成依赖图,所述依赖图表征所述构建单元和与所述构建单元相关联的依赖单元之间的向量引用关系。
4.根据权利要求1所述的分支检测方法,其特征在于,所述分类单元包括新增单元、修改单元、删除单元中的一项或多项。
5.根据权利要求4所述的分支检测方法,其特征在于,所述分别对所述分类单元和所述依赖单元执行不同的检测操作的步骤包括:
对所述新增单元和所述修改单元执行第一类操作;
对所述删除单元执行第二类操作;
对所述依赖单元执行第三类操作。
6.根据权利要求5所述的分支检测方法,其特征在于,所述第一类操作包括:对所述新增单元和所述修改单元依次执行编译、检查和测试,并同时展示所述新增单元和所述修改单元的文件列表;
所述第二类操作包括:检查所述删除单元是否可编译,若是,继续对所述删除单元执行第一类操作;若否,仅展示所述删除单元的文件列表;
所述第三类操作包括,对所述依赖单元执行编译,同时展示所述依赖单元的文件列表。
7.一种基于差异代码分析的分支检测装置,其特征在于,包括:
依赖关系获取模块,适用于响应针对代码分支的差异检测指令,获取代码仓库的根目录下所有构建单元之间的依赖关系;
差异单元获取模块,适用于...
【专利技术属性】
技术研发人员:沐阳,毛剑,林淼,
申请(专利权)人:上海哔哩哔哩科技有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。