一种基于版本控制流程的目标代码合并控制方法及系统技术方案

技术编号:19388802 阅读:25 留言:0更新日期:2018-11-10 01:59
本发明专利技术提供了一种基于版本控制流程的目标代码合并控制方法及系统,所述方法包括配置检测任务,所述配置检测任务包括配置检测服务器,以及配置分布式版本控制系统中的检测对象,所述分布式版本控制系统包括开发分支和目标分支;获取提交至开发分支的目标代码;判断所述目标代码是否属于所述检测对象;若是,则触发所述检测服务器以实现对所述目标代码的增量式检测和检测结果的反馈,并根据所述检测结果控制所述目标代码向目标分支的合并流程。本发明专利技术相较于现有技术中的全量检测,本方案检测过程靠前,检测速度快,结果简洁,相较于现有技术中的本地增量检测,本方案能够与版本控制流程相结合。

A target code merging control method and system based on version control flow

The invention provides an object code merging control method and system based on version control process, the method includes configuration detection task, the configuration detection task includes configuration detection server and configuration detection object in distributed version control system, and the distributed version control system includes development branch. And the target branch; acquire the target code submitted to the development branch; determine whether the target code belongs to the detection object; if so, trigger the detection server to achieve incremental detection of the target code and feedback of the detection results, and control the target code to target score according to the detection results. The merging process of branches. Compared with the total detection in the existing technology, the scheme has the advantages of advanced detection process, fast detection speed and concise results. Compared with the local incremental detection in the existing technology, the scheme can be combined with the version control process.

【技术实现步骤摘要】
一种基于版本控制流程的目标代码合并控制方法及系统
本专利技术涉及计算机应用
,尤其涉及一种基于版本控制流程的目标代码合并控制方法及系统。
技术介绍
现有的代码检测技术主要包括全量检测和本地增量检测,全量检测基于全量代码进行扫描,常用的扫描工具有Coverity和CppLint;增量检测由开发人员在本地自主进行,没有版本控制流程结合起来。现有技术方案下,全量检测存在扫描过程靠后,代码扫描量大,耗时长,结果庞杂,无法定位对应责任人,推动解决困难,问题解决率低等问题;增量检测则位于开发人员本地,没有与版本控制流程结合,导致开发人员主控性过大,出现问题解决率低等问题。
技术实现思路
为了解决上述技术问题,本专利技术提出了一种基于版本控制流程的目标代码合并控制方法及系统。本专利技术具体是以如下技术方案实现的:第一方面,一种基于版本控制流程的目标代码合并控制方法,包括:配置检测任务,所述配置检测任务包括配置检测服务器,以及配置版本控制系统中的检测对象,所述版本控制系统用于对代码进行版本管理,所述版本控制系统包括开发分支和目标分支;所述检测服务器用于对开发分支提交的代码进行自动检测;获取提交至开发分支的目标代码;判断所述目标代码是否属于所述检测对象;若是,则触发所述检测服务器以实现对所述目标代码的增量式检测和检测结果的反馈,并根据所述检测结果控制所述目标代码向目标分支的合并流程。第二方面,一种基于版本控制流程的目标代码合并控制系统,包括版本控制系统、检测任务配置管理器和检测服务器;所述检测任务配置管理器包括:检测任务配置模块,用于配置检测任务,所述配置检测任务包括配置检测服务器,以及配置版本控制系统中的检测对象,所述版本控制系统包括开发分支和目标分支;目标代码获取模块,用于获取提交至开发分支的目标代码;判断模块,用于判断所述目标代码是否属于所述检测对象;触发模块,用于触发所述检测服务器以实现对所述目标代码的增量式检测和检测结果的反馈;流程控制模块,用于根据所述检测结果控制所述目标代码向目标分支的合并流程。第三方面,一种计算机可读存储介质,用于存储程序,所述程序被执行时实现上述一种基于版本控制流程的目标代码合并控制方法的步骤。本专利技术提供了一种基于版本控制流程的目标代码合并控制方法及系统,本方案中将代码检测过程与版本控制流程相结合,对提交的代码能够进行增量式检测。相较于现有技术中的全量检测,本方案检测过程靠前,检测速度快,结果简洁,相较于现有技术中的本地增量检测,本方案能够与版本控制流程相结合。若增量式检测不合格,目标代码无法合并入目标分支,只有开发人员解决目标代码存在的问题后,才可以最终合并到目标分支。因此本方案基于版本控制流程和增量式检测保证了开发人员提交的目标代码的质量。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。图1是本专利技术实施例提供的一种基于版本控制流程的目标代码检测方法实施环境示意图;图2是本专利技术实施例提供的一种基于版本控制流程的目标代码合并控制方法流程图;图3是本专利技术实施例提供的检测服务器执行代码增量式检测的方法流程图;图4是本专利技术实施例提供的基于所述测试用例库对代码进行增量式检测的方法流程图;图5是本专利技术实施例提供的测试用例部署结构示意图;图6是本专利技术实施例提供的根据检测结果控制目标代码向目标分支的合并流程图;图7是本专利技术实施例提供的检测任务配置管理器框图;图8是本专利技术实施例提供的检测服务器框图;图9是本专利技术实施例提供的检测模块框图;图10是本专利技术实施例提供的流程控制模块框图;图11是本专利技术实施例提供的基于版本控制流程的目标代码合并控制系统运行设备示意图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。当前主流的静态代码检测方法基本基于代码的全量扫描,通常都是多数开发人员将代码提交后,在产品的主线或者发布线进行代码的全量扫描,代码的全量扫描的缺点比较明显,主要包括:扫描时机比较靠后,提交到主线或者发布线的代码如果有问题,需要回滚,影响主线或者发布线中代码的功能;扫描时间慢,比如浏览器内核代码的全量扫描可能要数个小时;扫描结果多,开发在有限的时间很难去解决问题;责任划分不清楚,多数开发只会对自己提交的代码负责,全量扫描很难定位到具体问题的出现位置,也难以找到责任人。此外,现有技术中还存在一些本地的增量检测方法,但是本地检测很容易被开发人员自由控制,并且无法与版本控制流程紧密的结合在一起。为了提升代码检测的效率,将检测流程与版本控制流程紧密结合在一起,因此,本专利技术实施例提供一种基于版本控制流程的目标代码合并控制方法及系统。参见图1,本专利技术实施例提供的一种基于版本控制流程的目标代码合并控制方法实施环境示意图。该实施环境包括:分布式版本控制系统101、检测任务配置管理器102和检测服务器103。其中,分布式版本控制系统101用于进行代码版本控制管理,检测服务器103用于实施代码增量式检测,检测任务配置管理器102用于配置检测任务,并控制检测服务器103进行代码增量式检测,以及控制分布式版本控制系统101中的代码版本控制流程。分布式版本控制系统101、检测任务配置管理器102和检测服务器103之间可以通过无线网络或者有线网络进行通信。参见图2,本专利技术实施例具体提供了一种基于版本控制流程的目标代码合并控制方法,包括:S101.配置检测任务,所述配置检测任务包括配置检测服务器,以及配置分布式版本控制系统中的检测对象,所述分布式版本控制系统包括开发分支和目标分支。所述分布式版本控制系统可以有效、高速的处理各种项目版本管理,常见的有SVN和Git。本专利技术实施例将以Git为例描述基于版本控制流程的目标代码合并控制方法。Git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。Git支持从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上,并支持创建分支,以及合并分支。通常情况下,各个部门的开发人员在各自对应的开发分支上提交代码,Git支持将各个开发分支上的代码合并到目标分支。通常目标分支也可以本文档来自技高网
...

【技术保护点】
1.一种基于版本控制流程的目标代码合并控制方法,其特征在于,包括:配置检测任务,所述配置检测任务包括配置检测服务器,以及配置版本控制系统中的检测对象,所述版本控制系统用于对代码进行版本管理,所述版本控制系统包括开发分支和目标分支;所述检测服务器用于对开发分支提交的代码进行自动检测;获取提交至开发分支的目标代码;判断所述目标代码是否属于所述检测对象;若是,则触发所述检测服务器以实现对所述目标代码的增量式检测和检测结果的反馈,并根据所述检测结果控制所述目标代码向目标分支的合并流程。

【技术特征摘要】
1.一种基于版本控制流程的目标代码合并控制方法,其特征在于,包括:配置检测任务,所述配置检测任务包括配置检测服务器,以及配置版本控制系统中的检测对象,所述版本控制系统用于对代码进行版本管理,所述版本控制系统包括开发分支和目标分支;所述检测服务器用于对开发分支提交的代码进行自动检测;获取提交至开发分支的目标代码;判断所述目标代码是否属于所述检测对象;若是,则触发所述检测服务器以实现对所述目标代码的增量式检测和检测结果的反馈,并根据所述检测结果控制所述目标代码向目标分支的合并流程。2.根据权利要求1所述的方法,其特征在于,所述配置版本控制系统中的检测对象包括配置仓库地址和开发分支,所述配置检测服务器包括配置检测脚本、环境变量和检测结果评价所需的评价规则。3.根据权利要求1所述的方法,其特征在于,对所述目标代码进行增量式检测包括:将所述目标代码所在的开发分支的代码拉取至检测服务器本地;执行检测脚本;所述检测脚本调用增量代码检测工具和测试用例库;向版本控制系统输出检测结果。4.根据权利要求3所述的方法,其特征在于,所述检测脚本执行的检测方法包括:根据所述目标代码获取增量代码;根据所述增量代码向所述测试用例库调取目标测试用例;运行所述目标测试用例;生成检测结果。5.根据权利要求4所述的方法,其特征在于,还包括:所述增量代码检测工具之中内嵌公共测试用例库,所述公共测试用例库记录通用的测试用例,所述公共测试用例库能够被所述测试用例库调用。6.根据权利要求1述的方法,其特征在于,所述根据所述检测结果控制所述目标代码向目标分支的合并流程包括:获取合并请求;响应于所述合并请求,判断检测结果是否合格;若合格,则将所述目标代码合并入目标分支;若不合格,则拒绝将所述目标代码合并入目标分支,并发布回滚指令以便于开发人员重新提交修改后的目标代码。7.一种基于版本控制流程的目标代码合并控制系统,其特征在于,包括版...

【专利技术属性】
技术研发人员:陆小三
申请(专利权)人:腾讯科技武汉有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1