【技术实现步骤摘要】
代码分析的方法和相关设备
[0001]本申请涉及软件开发
,更具体地,涉及代码分析的方法和相关设备。
技术介绍
[0002]当前的程序开发常基于分布式环境,由多人协同完成。在协同开发的过程中,程序员各自开发代码且长时间不和主干分支进行同步会造成大量冲突的积累,这给后期版本合并消解冲突带来了极大的不便。
[0003]为了解决这一问题,业界提出了一种基于人工智能(AI,artificial intelligence)的代码冲突检测方法。该方法训练一个随机森林的二分类模型,并采集代码中的一些信息(例如同时改变的文件数目、较早和最新提交代码(commit)之间的提交代码数目;一个分支中增加、删除、重命名、修改和拷贝文件的数目等),利用采集的信息和训练好的随机森林模型,判断两个分支之间的合并是否会造成冲突。
[0004]然而,这种方法在实际应用中的效果并不理想,很难适用于实际的场景中。
技术实现思路
[0005]本申请提供一种代码分析的方法和相关设备,可以帮助开发者迅速发现被修改的代码,以便于开发 ...
【技术保护点】
【技术特征摘要】
1.一种代码分析的方法,其特征在于,包括:获取变更代码块的属性信息,所述变更代码块的属性信息包括变更文件的身份信息和所述变更代码块在所述变更文件中的位置,其中,所述变更代码块位于分布式系统的终端中,所述分布式系统包括多个用于提供代码编写的终端;根据所述变更文件的身份信息,确定所述变更文件的基版本;根据所述变更代码块在所述变更文件中的位置,确定所述变更文件的基版本是否包括与所述变更代码块位置重叠的目标代码块;若所述变更文件的基版本中包括所述目标代码块,则向所述分布式系统中的至少一个终端进行预警。2.如权利要求1所述的方法,其特征在于,所述向所述分布式系统中的至少一个终端进行预警,包括:将所述变更代码块保存至变更代码冲突列表中;将所述变更代码冲突列表推送至所述分布式系统中的至少一个终端。3.如权利要求1或2所述的方法,其特征在于,所述变更代码块的属性信息还包括所述变更代码块的作者;若所述变更文件的基版本中包括所述目标代码块,则在所述分布式系统中的终端进行预警,包括:确定所述变更代码块的作者与所述目标代码块的作者不同,向所述分布式系统中的第一目标终端发送第一预警信息,所述第一目标终端为由所述目标代码块的作者使用的终端,所述第一预警信息用于指示所述目标代码块被修改。4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:确定所述目标代码块中是否与代码分析库中的特定代码块的位置重叠,所述特定代码块包括用于定义函数的代码块或用于定义变量的代码块;若所述目标代码块与所述特定代码块重叠,则向所述分布式系统中的第二目标终端发送第二预警信息,所述第二目标终端编写的代码中包括所述特定代码块定义的函数或变量,所述第二预警信息用于指示所述特定代码块定义的函数或变量发生变化。5.如权利要求4所述的方法,其特征在于,在所述目标代码块与所述特定代码块重叠的情况下,所述方法还包括:分析所述变更代码块,确定所述变更代码块定义的第一对象的关键信息;确定所述目标代码块定义的第二对象的关键信息,其中所述第一对象和所述第二对象为函数,或者,所述第一对象和所述第二对象为变量;比较所述第一对象的关键信息和所述第二对象的关键信息,确定所述第一对象的关键信息和所述第二对象的关键信息的差异信息,其中所述第二预警信息还用于指示所述差异信息。6.如权利要求5所述的方法,其特征在于,在所述第一对象和所述第二对象为函数的情况下,所述关键信息包括以下信息中的任一个或多个:所述函数的名称、所述函数中的参数、所述函数中的返回值、所述函数的开始行、所述函数的结束行、所述函数所属类、所述函数所属类的文件名、所述函数调用的另一函数的函数名、所述另一函数中的参数、所述另一函数的开始行、所述另一函数的结束行、所述另一函数所属类、所述另一函数所属类的文件
名、调用所述函数的调用者的类型名称;在所述第一对象和所述第二对象为变量的情况下,所述关键信息包括以下信息中的一个或多个:所述变量的名称、所述变量的开始行、所述变量的结束行、所述变量的类型。7.如权利要求1
‑
6任一项所述的方法,其特征在于,所述获取变更代码块的属性信息,包括:获取位于所述分布式系统中的终端的采集代理模块发送的所述变更代码块的属性信息。8.一种计算机设备,其特征在于,所述计算机设备包括:获取单元,用于获取变更代码块的属性信息,所述变更代码块的属性信息包括变更文件的身份信息和所述变更代码块在所述变更文件中的位置,其中,所述变更代码块位于分布式系统的终端中,所述分布式系统包括多个用于提供代码编写的终端;处理单元,用于根据所述变更文件的身份信息,确定所述变更文件的基版本;所述处理单元,还用于根据所述变更代码块在所述变更文件中的位置,确定所...
【专利技术属性】
技术研发人员:魏昭,梁广泰,
申请(专利权)人:华为云计算技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。