CN114168108A - 代码合并方法、装置、电子设备和计算机可读存储介质 - Google Patents
代码合并方法、装置、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN114168108A CN114168108A CN202111460657.2A CN202111460657A CN114168108A CN 114168108 A CN114168108 A CN 114168108A CN 202111460657 A CN202111460657 A CN 202111460657A CN 114168108 A CN114168108 A CN 114168108A
- Authority
- CN
- China
- Prior art keywords
- merged
- code
- branch
- codes
- merging
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3616—Software analysis for verifying properties of programs using software metrics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种代码合并方法、装置、电子设备和计算机可读存储介质,涉及计算机技术领域。该实施例包括:接收代码合并请求,根据代码合并请求,确定待合并的分支代码以及与该待合并的分支代码进行比较的目标代码,基于该目标代码和预设的核验规则,对该待合并的分支代码进行核验操作,确定该待合并的分支代码是否满足合并要求,在该待合并的分支代码满足合并要求的情况下,对待合并的分支代码进行合并操作。该实施例能够在合并之前对待合并的分支代码进行安全、规范扫描以及回归测试,以此来保障合并后的代码质量,减少人为错误,保证代码健康度,降低研发以及测试成本,能够降低由于代码合并出现疏漏和自测不充分引发的不稳定性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种代码合并方法、装置、电子设备和计算机可读存储介质。
背景技术
目前,在软件开发过程中,一般由多个项目组在同一个项目上并行开发,开发完成后,需要将分支代码合并。对于同一分支代码也存在不同的版本,在开发完最新版本的代码之后,需要将最新版本的代码合并或替换到当前版本。代码合并环节容易引发故障,具体表现为代码有漏洞,编写不规范,冗余造成性能损耗,修复的问题反复出现,代码实现的效果达不到预期或赐予上一版本的效果。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本发明实施例提供一种代码合并方法、装置、电子设备和计算机可读存储介质。
第一方面,本发明实施例提供了一种代码合并方法,包括:接收代码合并请求,根据所述代码合并请求,确定待合并的分支代码以及与所述待合并的分支代码进行比较的目标代码;基于所述目标代码和预设的核验规则,对所述待合并的分支代码进行核验操作,以确定所述待合并的分支代码是否满足合并要求;在所述待合并的分支代码满足所述合并要求的情况下,对所述待合并的分支代码进行合并操作。
在可选地实施例中,基于所述目标代码和预设的核验规则,对所述待合并的分支代码进行核验操作,以确定所述待合并的分支代码是否满足合并要求包括:逐行扫描所述待合并的分支代码以及所述目标代码,确定所述待合并的分支代码与所述目标代码之间的冲突点;获取预设的规范检测规则,根据所述规范检测规则对所述冲突点进行检测,确定所述待合并的分支代码是否满足所述规范检测规则;在所述待合并的分支代码满足所述规范检测规则的情况下,对所述待合并的分支代码进行回归测试,以确定所述待合并的分支代码是否符合业务要求;在所述待合并的分支代码的测试结果符合所述业务要求的情况下,确定所述待合并的分支代码满足所述合并要求。
在可选地实施例中,所述规范检查规则包括预设的安全漏洞检测规则;其中,所述预设的安全漏洞检测规则包括以下一种或多种检测项:企业信息、社会敏感信息和标记信息;根据所述规范检测规则对所述冲突点进行检测包括:根据所述预设的安全漏洞检测规则对所述冲突点进行检测。
在可选地实施例中,所述规范检查规则包括预设的编码规则;其中,所述预设的编码规则包括以下一种或多种检测项:注释、分支判断、循环嵌套和变量引入;根据所述规范检测规则对所述冲突点进行检测包括:根据所述预设的编码规则对所述冲突点进行检测。
在可选地实施例中,获取预设的规范检测规则包括:判断所述待合并的分支代码与所述目标代码之间的冲突点是否为注释内容,若是,则直接对所述待合并的分支代码进行合并操作;若否,则获取预设的规范检测规则。
在可选地实施例中,对所述待合并的分支代码进行回归测试,以确定所述待合并的分支代码是否符合业务要求包括:获取测试数据数据集,利用所述测试数据集对所述待合并的分支代码进行仿真,获得仿真结果;其中,所述测试数据集包括正常业务数据和异常业务数据;根据所述仿真结果,确定所述待合并的分支代码是否符合业务。
在可选地实施例中,根据所述代码合并请求,确定与所述待合并的分支代码进行比较的目标代码包括:根据所述代码合并请求,确定所述目标代码的版本号;根据所述版本号进行查询,确定所述目标代码是否为通过所述预设的核验规则的最新版本;若是,则逐行扫描所述待合并的分支代码以及所述目标代码;若否,则确定通过所述预设的核验规则的最新版本的目标代码,扫描所述待合并的分支代码以及通过所述预设的核验规则的最新版本的目标代码。
第二方面,本发明实施例提供了一种代码合并装置,包括:监听模块,用于接收代码合并请求,根据所述代码合并请求,确定待合并的分支代码以及与所述待合并的分支代码进行比较的目标代码;核验模块,用于基于所述目标代码和预设的核验规则,对所述待合并的分支代码进行核验操作,以确定所述待合并的分支代码是否满足合并要求;归档模块,用于在所述待合并的分支代码满足所述合并要求的情况下,对所述待合并的分支代码进行合并操作。
在可选地实施例中,所述核验模块还用于:逐行扫描所述待合并的分支代码以及所述目标代码,确定所述待合并的分支代码与所述目标代码之间的冲突点;获取预设的规范检测规则,根据所述规范检测规则对所述冲突点进行检测,确定所述待合并的分支代码是否满足所述规范检测规则;在所述待合并的分支代码满足所述规范检测规则的情况下,对所述待合并的分支代码进行回归测试,以确定所述待合并的分支代码是否符合业务要求;在所述待合并的分支代码的测试结果符合所述业务要求的情况下,确定所述待合并的分支代码满足所述合并要求。
在可选地实施例中,所述规范检查规则包括预设的安全漏洞检测规则;其中,所述预设的安全漏洞检测规则包括以下一种或多种检测项:企业信息、社会敏感信息和标记信息;所述核验模块还用于:根据所述预设的安全漏洞检测规则对所述冲突点进行检测。
在可选地实施例中,所述规范检查规则包括预设的编码规则;其中,所述预设的编码规则包括以下一种或多种检测项:注释、分支判断、循环嵌套和变量引入;所述核验模块还用于:根据所述预设的编码规则对所述冲突点进行检测。
在可选地实施例中,所述核验模块还用于:判断所述待合并的分支代码与所述目标代码之间的冲突点是否为注释内容,若是,则直接对所述待合并的分支代码进行合并操作;若否,则获取预设的规范检测规则。
在可选地实施例中,所述核验模块还用于:获取测试数据数据集,利用所述测试数据集对所述待合并的分支代码进行仿真,获得仿真结果;其中,所述测试数据集包括正常业务数据和异常业务数据;根据所述仿真结果,确定所述待合并的分支代码是否符合业务。
在可选地实施例中,所述监听模块还用于:根据所述代码合并请求,确定所述目标代码的版本号;根据所述版本号进行查询,确定所述目标代码是否为通过所述预设的核验规则的最新版本;若是,则逐行扫描所述待合并的分支代码以及所述目标代码;若否,则确定通过所述预设的核验规则的最新版本的目标代码,扫描所述待合并的分支代码以及通过所述预设的核验规则的最新版本的目标代码。
第三方面,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使得所述处理器执行以下步骤:接收代码合并请求,根据所述代码合并请求,确定待合并的分支代码以及与所述待合并的分支代码进行比较的目标代码;基于所述目标代码和预设的核验规则,对所述待合并的分支代码进行核验操作,以确定所述待合并的分支代码是否满足合并要求;在所述待合并的分支代码满足所述合并要求的情况下,对所述待合并的分支代码进行合并操作。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例的代码合并方法。
上述实施例中的一个或多个技术方案至少具有如下优点的部分或全部:
通过根据代码合并请求,确定待合并的分支代码以及与该待合并的分支代码进行比较的目标代码,基于该目标代码和预设的核验规则,对该待合并的分支代码进行核验操作,确定该待合并的分支代码是否满足合并要求,在该待合并的分支代码满足合并要求的情况下,对待合并的分支代码进行合并操作的技术手段,能够在合并之前对待合并的分支代码进行安全、规范扫描以及回归测试,以此来保障合并后的代码质量,减少人为错误,保证代码健康度,降低研发以及测试成本,能够降低由于代码合并出现疏漏和自测不充分引发的不稳定性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示意性地示出了本发明实施例的代码合并方法的主要步骤的流程图;
图2示意性地示出了本发明另一实施例的代码合并方法的流程的示意图;
图3示意性地示出了本发明实施例的代码合并装置的结构示意图;
图4示意性地示出了适用于本发明实施例的代码合并方法的***架构;
图5示意性示出了本发明一实施例的电子设备的示意图;
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示意性地示出了本发明实施例的代码合并方法的主要步骤的示意图,如图1所示,该方法包括:
步骤S101:接收代码合并请求,根据所述代码合并请求,确定待合并的分支代码以及与所述待合并的分支代码进行比较的目标代码;
步骤S102:基于所述目标代码和预设的核验规则,对所述待合并的分支代码进行核验操作,以确定所述待合并的分支代码是否满足合并要求;
步骤S103:在所述待合并的分支代码满足所述合并要求的情况下,对所述待合并的分支代码进行合并操作。
本发明实施例的代码合并方法,为了防止出现由于代码合并引发***不稳定,在代码合并之前,先核验待合并的分支代码,对待合并的分支代码进行安全、规范扫描以及回归测试,以此来保障合并后的代码质量,从而减少人为错误,保证代码健康度,降低研发以及测试成本。具体的,本发明实施例在接收到代码合并请求的情况下,根据接收到的代码合并请求,确定待合并的分支代码以及与该待合并的分支代码进行比较的目标代码,例如可以确定待合并的分支代码的版本号、目标代码的版本号,进一步地也可以确定待合并的分支代码的开发者信息以及目标代码的开发者信息。然后基于该目标代码以及预设的核验规则,对待合并的分支代码进行核验操作,以确定该待合并的分支代码是否满足合并要求,例如确定该待合并的分支代码是否存在漏洞、编码是否符合规范以及是否能够实现功能等。在确定该待合并的分支代码满足合并要求的情况下,对该待合并的分支代码进行合并操作。在可选地实施例中,在对待合并的分支代码进行合并操作之后,对合并后的代码进行归档。
图2示意性地示出了本发明另一实施例的代码合并方法的主要步骤的示意图,如图2所示,该方法包括:
步骤S201:接收代码合并请求,根据所述代码合并请求,确定待合并的分支代码以及与所述待合并的分支代码进行比较的目标代码;
步骤S202:逐行扫描所述待合并的分支代码以及所述目标代码,确定所述待合并的分支代码与所述目标代码之间的冲突点;
步骤S203:获取预设的规范检测规则,根据所述规范检测规则对所述冲突点进行检测,确定所述待合并的分支代码是否满足所述规范检测规则;
步骤S204:在所述待合并的分支代码满足所述规范检测规则的情况下,对所述待合并的分支代码进行回归测试,以确定所述待合并的分支代码是否符合业务要求;
步骤S205:在所述待合并的分支代码的测试结果符合所述业务要求的情况下,确定所述待合并的分支代码满足所述合并要求。
其中,步骤S201和步骤S206与图1所示的实施例相同,本发明在此不再赘述。
对于步骤S202-步骤S205,逐行扫描待合并的分支代码以及目标代码,判断待合并的分支代码与目标代码的每一行代码是否相同,例如字数是否相同,若不同,则不同的代码即为待合并的分支代码与目标代码之间的冲突点。在确定待合并的分支代码与目标代码之间的冲突点之后,获取预设的规范检测规则,利用该预设的规范检测规则检测冲突点是否存在安全漏洞、是否编写规范等。作为具体的示例,该预设的规范检测规则包括安全漏洞检测规则和编码规则。根据所述规范检测规则对所述冲突点进行检测包括:根据所述预设的安全漏洞检测规则对所述冲突点进行检测,以及根据所述预设的编码规则对所述冲突点进行检测。其中,预设的安全漏洞检测规则包括以下一种或多种检测项:企业信息、社会敏感信息和标记信息。预设的编码规则包括以下一种或多种检测项:注释、分支判断、循环嵌套和变量引入,即该预设的编码规则用于检测注释部分、分支判断、循环嵌套和变量引入的编写方式是否符合要求。
在确定待合并的分支代码的测试结果没有通过该预设的规范检测规则的情况下,输出不满足的情况,以通知该待合并的分支代码的开发者进行修改。在确定待合并的分支代码的测试结果通过该预设的规范检测规则之后,对所述待合并的分支代码进行回归测试。具体的,该过程包括:获取测试数据数据集,利用所述测试数据集对所述待合并的分支代码进行仿真,获得仿真结果;其中,所述测试数据集包括正常业务数据和异常业务数据(badcase)。本实施例通过对待合并的分支代码进行测试,以确定该待合并的分支代码的功能是否满足业务要求。对待合并的分支代码进行回归测试可得到测试结果(即测试报告),根据测试结果即可确定待合并的分支代码的功能是否满足业务要求。
本发明实施例的代码合并方法,通过预设的安全漏洞检测规则、编码规则和回归测试,分别核验了待合并的分支代码的安全性、规范性和功能,以此来保障合并后的代码质量,从而减少人为错误,保证代码健康度,降低研发以及测试成本。
在可选地实施例中,为提高对待合并的分支代码的核验效率,在对待合并的分支代码进行核验之前,先判断所述待合并的分支代码与所述目标代码之间的冲突点是否为注释内容,若是,则直接对所述待合并的分支代码进行合并操作;若否,则获取预设的规范检测规则对待合并的分支代码进行核验。对于特征的编程语言,其有特定的注释格式,基于该特定的注释格式可以确定待合并的分支代码有目标代码之间的冲突点是否为注释内容。
在其他可选地实施例中,为了保证与待合并的分支代码进行比较的目标代码是最新的版本,在扫描待合并的分支代码与目标代码之前,需要判断目标代码是否为通过预设的核验规则的最新版本。若是,则逐行扫描所述待合并的分支代码以及所述目标代码,若否,则确定通过所述预设的核验规则的最新版本的目标代码,扫描所述待合并的分支代码以及通过所述预设的核验规则的最新版本的目标代码。
图3示意性地示出了本发明实施例的代码合并装置300的结构示意图,如图3所示,该代码合并装置300包括:
监听模块301,用于接收代码合并请求,根据所述代码合并请求,确定待合并的分支代码以及与所述待合并的分支代码进行比较的目标代码;
核验模块302,用于基于所述目标代码和预设的核验规则,对所述待合并的分支代码进行核验操作,以确定所述待合并的分支代码是否满足合并要求;
归档模块303,用于在所述待合并的分支代码满足所述合并要求的情况下,对所述待合并的分支代码进行合并操作。
在可选地实施例中,所述核验模块302还用于:逐行扫描所述待合并的分支代码以及所述目标代码,确定所述待合并的分支代码与所述目标代码之间的冲突点;获取预设的规范检测规则,根据所述规范检测规则对所述冲突点进行检测,确定所述待合并的分支代码是否满足所述规范检测规则;在所述待合并的分支代码满足所述规范检测规则的情况下,对所述待合并的分支代码进行回归测试,以确定所述待合并的分支代码是否符合业务要求;在所述待合并的分支代码的测试结果符合所述业务要求的情况下,确定所述待合并的分支代码满足所述合并要求。
在可选地实施例中,所述规范检查规则包括预设的安全漏洞检测规则;其中,所述预设的安全漏洞检测规则包括以下一种或多种检测项:企业信息、社会敏感信息和标记信息;所述核验模块302还用于:根据所述预设的安全漏洞检测规则对所述冲突点进行检测。
在可选地实施例中,所述规范检查规则包括预设的编码规则;其中,所述预设的编码规则包括以下一种或多种检测项:注释、分支判断、循环嵌套和变量引入;所述核验模块302还用于:根据所述预设的编码规则对所述冲突点进行检测。
在可选地实施例中,所述核验模块302还用于:判断所述待合并的分支代码与所述目标代码之间的冲突点是否为注释内容,若是,则直接对所述待合并的分支代码进行合并操作;若否,则获取预设的规范检测规则。
在可选地实施例中,所述核验模块302还用于:获取测试数据数据集,利用所述测试数据集对所述待合并的分支代码进行仿真,获得仿真结果;其中,所述测试数据集包括正常业务数据和异常业务数据;根据所述仿真结果,确定所述待合并的分支代码是否符合业务。
在可选地实施例中,所述监听模块还用于:根据所述代码合并请求,确定所述目标代码的版本号;根据所述版本号进行查询,确定所述目标代码是否为通过所述预设的核验规则的最新版本;若是,则逐行扫描所述待合并的分支代码以及所述目标代码;若否,则确定通过所述预设的核验规则的最新版本的目标代码,扫描所述待合并的分支代码以及通过所述预设的核验规则的最新版本的目标代码。
本发明实施例的代码合并装置,通过根据代码合并请求,确定待合并的分支代码以及与该待合并的分支代码进行比较的目标代码,基于该目标代码和预设的核验规则,对该待合并的分支代码进行核验操作,确定该待合并的分支代码是否满足合并要求,在该待合并的分支代码满足合并要求的情况下,对待合并的分支代码进行合并操作的技术手段,能够在合并之前对待合并的分支代码进行安全、规范扫描以及回归测试,以此来保障合并后的代码质量,减少人为错误,保证代码健康度,降低研发以及测试成本,能够降低由于代码合并出现疏漏和自测不充分引发的不稳定性。
图4示意性地示出了适用于本发明实施例的代码合并方法的***架构。
如图4所示,适用于本发明实施例的模型迭代方法的***架构400包括:终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等。
终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用。
终端设备401、402、403可以是具有数据采集功能的电子设备或自动驾驶车辆或机器人。
服务器405可以是提供各种服务的服务器。服务器可以对接收到的请求或消息进行分析和处理,并将数据处理后得到的结果反馈给终端设备。
需要说明的是,本发明实施例所提供的代码合并方法一般可以由服务器405执行。本发明实施例所提供的代码合并方法也可以由不同于服务器405且能够与终端设备401、402、403和/或服务器405通信的服务器或服务器集群执行。
应该理解的是,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图5示意性示出了本发明一实施例的电子设备的示意图。如图5所示,本发明实施例提供的电子设备500包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501、通信接口502和存储器503通过通信总线504完成相互间的通信;存储器503,用于存放至少一可执行指令;处理器501,用于执行存储器上所存放的可执行指令时,实现如上所述的模型迭代方法。
具体而言,当实现上述模型迭代方法时,上述可执行指令使得上述处理器执行以下步骤:接收代码合并请求,根据所述代码合并请求,确定待合并的分支代码以及与所述待合并的分支代码进行比较的目标代码;基于所述目标代码和预设的核验规则,对所述待合并的分支代码进行核验操作,以确定所述待合并的分支代码是否满足合并要求;在所述待合并的分支代码满足所述合并要求的情况下,对所述待合并的分支代码进行合并操作。
上述存储器503可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器503具有用于执行上述方法中的任何方法步骤的程序代码的存储空间。例如,用于程序代码的存储空间可以包括分别用于实现上面的方法中的各个步骤的各个程序代码。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,光盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为便携式或者固定存储单元。该存储单元可以具有与上述电子设备中的存储器503类似布置的存储段或者存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括用于执行根据本发明的实施例的方法步骤的程序,即可以由例如诸如501之类的处理器读取的代码,这些代码当由电子设备运行时,导致该电子设备执行上面所描述的方法中的各个步骤。
本发明实施例还提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现如上所述的代码合并方法。
该计算机可读存储介质可以是上述实施例中描述的设备/装置中所包含的;也可以是单独存在,而未装配入该设备/装置中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本发明实施例的方法。
根据本发明的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
本发明的实施例提供的上述各个技术方案可以全部或部分步骤以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明的实施例的电子设备中的一些或者全部部件的一些或者全部功能。本发明的实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。实现本发明的实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者步骤与另一个实体或步骤区分开来,而不一定要求或者暗示这些实体或步骤之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种代码合并方法,其特征在于,包括:
接收代码合并请求,根据所述代码合并请求,确定待合并的分支代码以及与所述待合并的分支代码进行比较的目标代码;
基于所述目标代码和预设的核验规则,对所述待合并的分支代码进行核验操作,以确定所述待合并的分支代码是否满足合并要求;
在所述待合并的分支代码满足所述合并要求的情况下,对所述待合并的分支代码进行合并操作。
2.根据权利要求1所述的方法,其特征在于,基于所述目标代码和预设的核验规则,对所述待合并的分支代码进行核验操作,以确定所述待合并的分支代码是否满足合并要求包括:
逐行扫描所述待合并的分支代码以及所述目标代码,确定所述待合并的分支代码与所述目标代码之间的冲突点;
获取预设的规范检测规则,根据所述规范检测规则对所述冲突点进行检测,确定所述待合并的分支代码是否满足所述规范检测规则;
在所述待合并的分支代码满足所述规范检测规则的情况下,对所述待合并的分支代码进行回归测试,以确定所述待合并的分支代码是否符合业务要求;
在所述待合并的分支代码的测试结果符合所述业务要求的情况下,确定所述待合并的分支代码满足所述合并要求。
3.根据权利要求2所述的方法,其特征在于,所述规范检查规则包括预设的安全漏洞检测规则;其中,所述预设的安全漏洞检测规则包括以下一种或多种检测项:企业信息、社会敏感信息和标记信息;
根据所述规范检测规则对所述冲突点进行检测包括:根据所述预设的安全漏洞检测规则对所述冲突点进行检测。
4.根据权利要求2或3所述的方法,其特征在于,所述规范检查规则包括预设的编码规则;其中,所述预设的编码规则包括以下一种或多种检测项:注释、分支判断、循环嵌套和变量引入;
根据所述规范检测规则对所述冲突点进行检测包括:根据所述预设的编码规则对所述冲突点进行检测。
5.根据权利要求2所述的方法,其特征在于,获取预设的规范检测规则包括:
判断所述待合并的分支代码与所述目标代码之间的冲突点是否为注释内容;
若是,则直接对所述待合并的分支代码进行合并操作;
若否,则获取预设的规范检测规则。
6.根据权利要求2所述的方法,其特征在于,对所述待合并的分支代码进行回归测试,以确定所述待合并的分支代码是否符合业务要求包括:
获取测试数据数据集,利用所述测试数据集对所述待合并的分支代码进行仿真,获得仿真结果;其中,所述测试数据集包括正常业务数据和异常业务数据;
根据所述仿真结果,确定所述待合并的分支代码是否符合业务。
7.根据权利要求2所述的方法,其特征在于,根据所述代码合并请求,确定与所述待合并的分支代码进行比较的目标代码包括:
根据所述代码合并请求,确定所述目标代码的版本号;
根据所述版本号进行查询,确定所述目标代码是否为通过所述预设的核验规则的最新版本;
若是,则逐行扫描所述待合并的分支代码以及所述目标代码;
若否,则确定通过所述预设的核验规则的最新版本的目标代码,扫描所述待合并的分支代码以及通过所述预设的核验规则的最新版本的目标代码。
8.一种代码合并装置,其特征在于,包括:
监听模块,用于接收代码合并请求,根据所述代码合并请求,确定待合并的分支代码以及与所述待合并的分支代码进行比较的目标代码;
核验模块,用于基于所述目标代码和预设的核验规则,对所述待合并的分支代码进行核验操作,以确定所述待合并的分支代码是否满足合并要求;
归档模块,用于在所述待合并的分支代码满足所述合并要求的情况下,对所述待合并的分支代码进行合并操作。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使得所述处理器执行以下步骤:
接收代码合并请求,根据所述代码合并请求,确定待合并的分支代码以及与所述待合并的分支代码进行比较的目标代码;
基于所述目标代码和预设的核验规则,对所述待合并的分支代码进行核验操作,以确定所述待合并的分支代码是否满足合并要求;
在所述待合并的分支代码满足所述合并要求的情况下,对所述待合并的分支代码进行合并操作。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111460657.2A CN114168108A (zh) | 2021-12-02 | 2021-12-02 | 代码合并方法、装置、电子设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111460657.2A CN114168108A (zh) | 2021-12-02 | 2021-12-02 | 代码合并方法、装置、电子设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114168108A true CN114168108A (zh) | 2022-03-11 |
Family
ID=80482444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111460657.2A Pending CN114168108A (zh) | 2021-12-02 | 2021-12-02 | 代码合并方法、装置、电子设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168108A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117519782A (zh) * | 2024-01-05 | 2024-02-06 | 浙江大华技术股份有限公司 | 基于分布式的工程管理方法、装置、设备以及存储介质 |
-
2021
- 2021-12-02 CN CN202111460657.2A patent/CN114168108A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117519782A (zh) * | 2024-01-05 | 2024-02-06 | 浙江大华技术股份有限公司 | 基于分布式的工程管理方法、装置、设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112183782B (zh) | 故障工单处理方法及设备 | |
CN111144839B (zh) | 一种项目构建方法、持续集成***及终端设备 | |
CN110851471A (zh) | 分布式日志数据处理方法、装置以及*** | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
CN107451058B (zh) | 一种软件开发方法和装置 | |
CN113114680B (zh) | 用于文件上传漏洞的检测方法和检测装置 | |
CN111221727B (zh) | 测试方法、装置、电子设备和计算机可读介质 | |
CN111858376A (zh) | 请求报文生成方法和接口测试方法 | |
CN114185808A (zh) | 自动化测试方法、装置、电子设备及计算机可读存储介质 | |
CN113760729A (zh) | 一种代码检测方法和装置 | |
CN111367531B (zh) | 代码处理方法及装置 | |
CN112817853A (zh) | 一种自动测试方法、***和电子设备 | |
CN114168108A (zh) | 代码合并方法、装置、电子设备和计算机可读存储介质 | |
CN112131127B (zh) | 接口测试方法、装置、***及电子设备 | |
CN116599881A (zh) | 云平台租户建模测试的方法、装置、设备及存储介质 | |
CN116506340A (zh) | 流量链路的测试方法、装置、电子设备及存储介质 | |
CN116431522A (zh) | 一种低代码对象存储网关自动化测试方法及*** | |
CN112084114B (zh) | 用于测试接口的方法和装置 | |
CN115587041A (zh) | 移动应用交付任务处理方法和装置、电子设备和存储介质 | |
CN111752600B (zh) | 代码异常检测方法、装置、计算机设备及存储介质 | |
CN113282504A (zh) | 一种增量代码覆盖率检测方法及业务开发方法、装置 | |
CN108845932B (zh) | 一种网络库的单元测试方法、装置、存储介质及终端 | |
CN112748950A (zh) | 一种软件代码审查方法及装置 | |
CN111475400A (zh) | 一种业务平台的验证方法及相关设备 | |
CN110765006A (zh) | 流程测试方法和装置、计算机可读存储介质、电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |