代码提交日志的检测方法、装置、介质及电子设备与流程

文档序号:13574873阅读:164来源:国知局
代码提交日志的检测方法、装置、介质及电子设备与流程

本发明涉及计算机软件技术领域,尤其涉及一种代码提交日志的检测方法、装置、介质及电子设备。



背景技术:

在小型的单人软件开发模式中,源码版本管理工具的作用不是很明显。但随着软件开发模式的扩大,代码量逐渐增加,开发过程中可能会由于bug或者其他需求要求代码回滚,此时如果没有代码的历史备份,那么开发人员将无法进行代码回滚。另外,由于开发团队人员规模扩大时,基于分工也难免出现不同的人员修改同一份代码的情况。因此,源码版本管理工具是每一个开发团队必备的利器,svn作为一种源码版本管理工具,是subversion的简称,以实现对软件源代码的提交和管理。

然而,对于每一个开发团队而言,在使用svn提交代码版本时,由于人为原因,在提交代码时忘记写日志,或者提交的日志不符合项目组的规范,从而导致后续无法进行版本回退和版本合并。



技术实现要素:

本发明实施例提供一种代码提交日志的检测方法、装置、介质及电子设备,以提高代码提交的规范度,实现了后续版本的回退和合并。

一方面,本发明实施例提供一种代码提交日志的检测方法,包括:

提取待提交代码的日志参数,所述日志参数用于指示所述待提交代码的修改信息;

将所述日志参数中的每一个参数的参数类型和所述日志参数中每一个参数的参数信息与预设代码提交规则进行比较;

若所述日志参数的参数类型中包括与所述预设代码提交规则中的参数类型匹配的参数类型,且所述日志参数中每一个参数的参数信息符合所述预设代码提交规则中参数规范,提交所述待提交代码。

在本发明一实施例中,还包括:

若所述日志参数中没有包括与所述预设代码提交规则中的参数类型匹配的参数类型,或者,所述日志参数的参数信息不符合所述预设代码提交规则中参数规范,则根据所述预设代码提交规则修改所述日志参数。

在本发明一实施例中,所述将所述日志参数中的每一个参数的参数类型和所述日志参数中每一个参数的参数信息与预设代码提交规则进行比较,包括:

通过svn中的pre-commit事件的hook函数提取所述日志参数中每一个参数的参数类型和所述日志参数中每一个参数的参数信息;

根据正则表达式将所述日志参数中的每一个参数的参数类型和所述日志参数中每一个参数的参数信息与预设代码提交规则进行比较。

在本发明一实施例中,所述通过svn中的pre-commit事件的hook函数提取所述日志参数中每一个参数的参数类型和所述日志参数中每一个参数的参数信息之前,还包括:

通过svn中的start-commit事件的hook函数对所述日志参数进行初始化。

在本发明一实施例中,所述预设代码提交规则包括变更号参数、操作人参数、提交内容参数及修改时间参数中的至少一种参数类型。

在本发明一实施例中,所述通过svn中的start-commit事件的hook函数对所述日志参数进行初始化之前,还包括:

通过svn中的start-commit事件的hook函数确定所述日志参数为空。

在本发明一实施例中,所述提取待提交代码的日志参数之前,还包括:

确定所述待提交代码。

一方面,本发明实施例还提供一种代码提交日志的检测装置,包括:

提取单元,用于提取待提交代码的日志参数,所述日志参数用于指示所述待提交代码的修改信息;

比较单元,用于将所述日志参数中的每一个参数的参数类型和所述日志参数中每一个参数的参数信息与预设代码提交规则进行比较;

提交单元,用于若所述日志参数的参数类型中包括与所述预设代码提交规则中的参数类型匹配的参数类型,且所述日志参数中每一个参数的参数信息符合所述预设代码提交规则中参数规范,则提交所述待提交代码。

在本发明一实施例中,所述代码提交日志的检测装置还包括:

修改单元,还用于若所述日志参数中没有包括所述预设代码提交规则中的参数类型,或者,所述日志参数的参数信息不符合所述预设代码提交规则中参数规范,则根据所述预设代码提交规则修改所述日志参数。

在本发明一实施例中,所述比较单元,具体用于通过svn中的pre-commit事件的hook函数提取所述日志参数中每一个参数的参数类型和所述日志参数中每一个参数的参数信息;并根据正则表达式将所述日志参数中的每一个参数的参数类型和所述日志参数中每一个参数的参数信息与预设代码提交规则进行比较。

在本发明一实施例中,所述代码提交日志的检测装置还包括:

初始化单元,所述初始化单元用于通过svn中的start-commit事件的hook函数对所述日志参数进行初始化。

在本发明一实施例中,所述预设代码提交规则包括变更号参数、操作人参数、提交内容参数及修改时间参数中的至少一种参数类型。

在本发明一实施例中,所述代码提交日志的检测装置还包括:

确定单元,用于通过svn中的start-commit事件的hook函数确定所述日志参数为空。

在本发明一实施例中,所述确定单元,还用于确定所述待提交代码。

一方面,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的代码提交日志的检测方法。

一方面,本发明实施例还提供一种电子设备,包括:

处理器;以及

存储器,用于存储所述处理器的可执行指令;

其中,所述处理器配置为经由执行所述可执行指令来执行上述任一实施例所述的代码提交日志的检测方法。

本发明实施例提供的代码提交日志的检测方法、装置、介质及电子设备,通过提取待提交代码的日志参数,并将日志参数中的每一个参数的参数类型和日志参数中每一个参数的参数信息与预设代码提交规则进行比较;若所述日志参数的参数类型中包括与所述预设代码提交规则中的参数类型匹配的参数类型,且日志参数中每一个参数的参数信息符合预设代码提交规则中参数规范,则提交待提交代码。由此可见,本发明实施例提供的代码提交日志的检测方法、装置、介质及电子设备,在提交待提交代码之前,通过提取待提交代码的日志参数,并判断提取得到的日志参数是否符合预设代码提交规则,只有在日志参数符合预设代码提交规则时,才能提交待提交代码,从而提高了代码提交的规范度,避免了后续版本回退时造成代码版本混乱,实现了后续版本的回退和合并。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种代码提交日志的检测方法的流程示意图;

图2为本发明实施例提供的一种日志参数的示意图;

图3为本发明实施例提供的另一种日志参数的示意图;

图4为本发明实施例提供的再一种日志参数的示意图;

图5为本发明实施例提供的另一种代码提交日志的检测方法的流程示意图;

图6为本发明实施例提供的一种根据预设代码提交规则提交待提交代码的示意图;

图7为本发明实施例提供的一种代码提交日志的检测装置的结构示意图;

图8为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。

图1为本发明实施例提供的一种代码提交日志的检测方法的流程示意图,该代码提交日志的检测方法可以由代码提交日志的检测装置执行,该代码提交日志的检测装置可以独立设置,也可以集成在处理器中。请参见图1所示,该代码提交日志的检测方法可以包括:

s101、提取待提交代码的日志参数。

其中,日志参数用于指示待提交代码的修改信息。该日志参数是工作人员在提交待提交代码时输入的,可选的,在本发明实施例中,日志参数可以包括变更号参数、操作人参数、提交内容参数及修改时间参数等中的一个或者多个。变更号参数用于指示待提交代码的变更版本号;操作人参数用于指示待提交代码的操作人员;提交内容参数用于指示提交的代码内容,修改时间参数用于指示该待提交代码的提交时间。需要说明的是,在本发明实施例中,操作人参数和修改时间参数可以在提交待提交代码时,由系统自动生成,而变更号参数和提交内容参数是在提交待提交代码时,工作人员输入系统的,当然,操作人参数和修改时间参数也可以在提交待提交代码时,由工作人员输入系统。

示例的,在本发明实施例中,日志参数中的变更号参数可以为:000015;操作人参数可以为:zhangsan;提交内容参数可以为:cccccc;修改时间参数可以为2017/08/21;在此,本发明实施例只是以此为例进行说明,但并不代表本发明仅局限于此。

s102、将日志参数中的每一个参数的参数类型和日志参数中每一个参数的参数信息与预设代码提交规则进行比较。

其中,预设代码提交规则包括变更号参数、操作人参数、提交内容参数及修改时间参数中的至少一种参数类型。当然,本发明实施例只是以预设代码提交规则包括变更号参数、操作人参数、提交内容参数及修改时间参数中的至少一种参数类型为例进行说明,具体可以根据实际需要进行设置。可选的,在本发明实施例中,以预设代码提交规则中包括变更号参数、操作人参数、提交内容参数及修改时间参数为例进行说明。其中,每一种参数类型对应有参数规范,以变更号参数为例,其对应的参数规范可以为六位提交;以修改时间参数为例,其对应的参数规范可以为xxxx/xx/xx,即以年/月/日的形式。当然,本发明实施例只是以变更号参数的参数规范为六位提交,及修改时间参数的参数规范为年/月/日的形式为例进行说明,具体可以根据实际需要进行设置,在此,本发明不做进一步限制。

s103、若日志参数的参数类型中包括与预设代码提交规则中的参数类型匹配的参数类型,且日志参数中每一个参数的参数信息符合预设代码提交规则中参数规范,则提交待提交代码。

需要说明的是,在本发明实施例中,匹配可以指日志参数的参数类型与预设提交规则中的参数类型一致,如日志参数中的某一参数类型为修改时间参数,预设提交规则中的某一参数类型也为修改时间参数,则认为若日志参数的参数类型中包括与预设代码提交规则中的每一种参数类型匹配的类型;当然,匹配也可以指日志参数的参数类型与预设提交规则中的参数类型为相同含义,如日志参数中的某一参数类型为更改时间参数,预设提交规则中的某一参数类型也为修改时间参数,也可以认为若日志参数的参数类型中包括与预设代码提交规则中的每一种参数类型匹配的类型。

在实际应用过程中,以提取到的日志参数的参数类型为变更号参数、操作人参数、及提交内容参数为例进行说明,将提取到的变更号参数、操作人参数、及提交内容参数与预设代码提交规则中的每一种参数类型进行比较,可以看出,日志参数中包括与预设代码提交规则匹配的变更号参数、操作人参数、及提交内容参数,请参见图2所示,图2为本发明实施例提供的一种日志参数的示意图,而日志参数中没有包括与预设代码提交规则中的修改时间参数匹配的参数类型,则可以确定日志参数不符合预设代码提交规则,此时可以显示参数类型不匹配,不能提交待提交代码。若提取到的日志参数的参数类型为变更号参数、操作人参数、提交内容参数及修改时间参数;则可以看出:对于预设代码提交规则中的每一种参数类型而言,日志参数中均包括与其匹配的参数类型,则进一步确定日志参数的变更号参数、操作人参数、提交内容参数及修改时间参数的参数信息是否符合预设代码提交规范中参数规范,若确定日志参数的变更号参数、操作人参数、提交内容参数均符合预设代码提交规范中参数规范,但日志参数的修改时间参数的参数信息为2017/08,请参见图3所示,图3为本发明实施例提供的另一种日志参数的示意图,显然,该修改时间参数的参数信息不符合预设代码提交规范中的修改时间参数的参数规范xxxx/xx/xx,则可以确定日志参数不符合预设代码提交规则,此时可以参数信息不符合参数规范,不能提交待提交代码,此时可以通过修改日志参数的修改时间参数的参数信息,使其符合预设代码提交规范中的修改时间参数的参数规范,请参见图4所示,图4为本发明实施例提供的再一种日志参数的示意图,则该日志参数的参数类型中包括与预设代码提交规则中的每一种参数类型匹配的类型,且日志参数中每一个参数的参数信息符合预设代码提交规则中参数规范,此时可以显示符合预设代码提交规则,以提交待提交代码。由此可见,本发明实施例提供的代码提交日志的检测方法,在提交待提交代码之前,通过判断日志参数的参数类型与预设代码提交规则中的每一种参数类型是否匹配,若匹配,则进一步判断日志参数中每一个参数的参数信息是否符合预设代码提交规则中参数规范,若符合,则提交待提交代码,从而提高了代码提交的规范度,避免了后续版本回退时造成代码版本混乱,实现了后续版本的回退和合并。

本发明实施例提供的代码提交日志的检测方法,通过提取待提交代码的日志参数,并将日志参数中的每一个参数的参数类型和日志参数中每一个参数的参数信息与预设代码提交规则进行比较;若日志参数的参数类型中包括与预设代码提交规则中的参数类型匹配的参数类型,且日志参数中每一个参数的参数信息符合预设代码提交规则中参数规范,则提交待提交代码。由此可见,本发明实施例提供的代码提交日志的检测方法,在提交待提交代码之前,通过提取待提交代码的日志参数,并判断提取得到的日志参数是否符合预设代码提交规则,只有在日志参数符合预设代码提交规则时,才能提交待提交代码,从而提高了代码提交的规范度,避免了后续版本回退时造成代码版本混乱,实现了后续版本的回退和合并。

基于图1对应的实施例,在图1对应的实施例的基础上,进一步地,请参见图5所示,图5为本发明实施例提供的另一种代码提交日志的检测方法的流程示意图,该代码提交日志的检测方法还可以包括:

s104、若日志参数中没有包括与预设代码提交规则中的参数类型匹配的参数类型,或者,日志参数的参数信息不符合预设代码提交规则中参数规范,则根据预设代码提交规则修改日志参数。

请结合图1所示的实施例,同样的,在提取到待提交代码的日志参数之后,就可以判断该日志参数是否符合预设代码提交规则,若日志参数不符合预设代码提交规则,则根据预设代码提交规则修改日志参数。

在根据预设代码提交规则修改日志参数时,可以先确定预设代码提交规则中包括哪些类型的参数,再进一步确定每一种参数类型对应的参数规范,之后,就可以根据预设代码提交规则中的参数类型以及每一种参数类型对应的参数规范进行日志参数修改,以得到符合预设代码提交规则的日志参数,在得到修改后的日志参数之后,若符合预设代码提交规则,就可以重新提交待提交代码。

需要说明的是,在本发明实施例中,s102之后也可以直接执行s104,即在s102之后,只执行s103和s104中的一个即可。

为了更好地说明s102将日志参数中的每一个参数的参数类型和日志参数中每一个参数的参数信息与预设代码提交规则进行比较,可选的,在本发明实施例中,可以通过如下s601-s602实现,具体请参见图6所示,图6为本发明实施例提供的一种将日志参数与预设代码提交规则进行比较的示意图;该代码提交日志的检测方法还可以包括:

s601、通过svn中的pre-commit事件的hook函数提取日志参数中每一个参数的参数类型和日志参数中每一个参数的参数信息。

在将日志参数中的每一个参数的参数类型和日志参数中每一个参数的参数信息与预设代码提交规则进行比较之前,需要先提取日志参数中每一个参数的参数类型和日志参数中每一个参数的参数信息。可选的,在本发明实施例中,可以通过svn中的pre-commit事件的hook函数提取日志参数中每一个参数的参数类型和日志参数中每一个参数的参数信息。当特定的事件发生时,svn中相应的hook函数会被调用,hook函数相当于特定事件的处理函数。每个hook函数在被调用之后,都会得到与它所处理的事件相关的参数,svn会根据hook函数的返回值,确定是否继续当前的提交过程。

s602、根据正则表达式将日志参数中的每一个参数的参数类型和日志参数中每一个参数的参数信息与预设代码提交规则进行比较。

在通过svn中的pre-commit事件的hook函数提取日志参数中每一个参数的参数类型和日志参数中每一个参数的参数信息之后,就可以根据正则表达式将将日志参数中的每一个参数的参数类型和日志参数中每一个参数的参数信息与预设代码提交规则进行比较,从而确定日志参数是否符合预设代码提交规则中参数规范。

可选的,s602通过svn中的pre-commit事件的hook函数提取日志参数中每一个参数的参数类型和日志参数中每一个参数的参数信息之前,还可以包括:

通过svn中的start-commit事件的hook函数对日志参数进行初始化。

示例的,在本发明实施例中,若待提交代码的日志参数为空,则可以初始化日志参数,可选的,在本发明实施例中,可以通过svn中的start-commit事件的hook函数对日志参数进行初始化之后,再提取初始化之后的日志参数,以判断该日志参数是否符合预设代码提交规则,从而根据判断结果确定是否提交待提交代码。当然,若待提交代码的日志参数不为空,可以直接通过svn中的pre-commit事件的hook函数提取日志参数中每一个参数的参数类型和日志参数中每一个参数的参数信息,以判断该日志参数是否符合预设代码提交规则,从而根据判断结果确定是否提交待提交代码。

可选的,在本发明实施例中,提取待提交代码的日志参数之前,还可以包括:

确定待提交代码。在确定待提交代码之后,就可以执行上述s101-s103所示的代码提交日志的检测方法。

图7为本发明实施例提供的一种代码提交日志的检测装置70的结构示意图,当然,本发明实施例只是以图7为例进行说明,但并不代表本发明仅局限于此。请参见图7所示,该代码提交日志的检测装置70可以包括:

提取单元701,用于提取待提交代码的日志参数,日志参数用于指示待提交代码的修改信息。

比较单元702,用于将日志参数中的每一个参数的参数类型和日志参数中每一个参数的参数信息与预设代码提交规则进行比较。

提交单元703,用于若日志参数的参数类型中包括与预设代码提交规则中的参数类型匹配的参数类型,且日志参数中每一个参数的参数信息符合预设代码提交规则中参数规范,则提交待提交代码。

可选的,该代码提交日志的检测装置70还可以包括:

修改单元704,还用于若日志参数中没有包括与预设代码提交规则中的参数类型匹配的参数类型,或者,日志参数的参数信息不符合预设代码提交规则中参数规范,则根据预设代码提交规则修改日志参数。

可选的,比较单元702,具体用于通过svn中的pre-commit事件的hook函数提取日志参数中每一个参数的参数类型和日志参数中每一个参数的参数信息;并根据正则表达式将日志参数中的每一个参数的参数类型和日志参数中每一个参数的参数信息与预设代码提交规则进行比较。

可选的,该代码提交日志的检测装置70还可以包括:

初始化单元705,用于通过svn中的start-commit事件的hook函数对日志参数进行初始化。

可选的,预设代码提交规则包括变更号参数、操作人参数、提交内容参数及修改时间参数中的至少一种参数类型。

可选的,代码提交日志的检测装置70还包括:

确定单元706,用于通过svn中的start-commit事件的hook函数确定日志参数为空。

可选的,确定单元706,还用于确定待提交代码。

本发明实施例所示的代码提交日志的检测装置70,可以执行上述代码提交日志的检测方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例的代码提交日志的检测方法。

上述计算机可读存储介质,对应地可执行任一实施例的代码提交日志的检测方法的技术方案,其实现原理和技术效果类似,在此不再赘述。

图8为本发明提供的一种电子设备80的结构示意图,请参考图8所示,该电子设备80可以包括:

处理器801;以及

存储器802,用于存储处理器801的可执行指令。

其中,处理器801配置为经由执行可执行指令来执行上述任一实施例的代码提交日志的检测方法。

上述电子设备80,对应地可执行任一实施例的代码提交日志的检测方法的技术方案,其实现原理和技术效果类似,在此不再赘述。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1