CN111124478A - 版本管理方法及装置 - Google Patents
版本管理方法及装置 Download PDFInfo
- Publication number
- CN111124478A CN111124478A CN201911315943.2A CN201911315943A CN111124478A CN 111124478 A CN111124478 A CN 111124478A CN 201911315943 A CN201911315943 A CN 201911315943A CN 111124478 A CN111124478 A CN 111124478A
- Authority
- CN
- China
- Prior art keywords
- file
- source code
- version
- code file
- submitted
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 167
- 238000000034 method Methods 0.000 claims abstract description 22
- 230000004044 response Effects 0.000 claims description 45
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种版本管理方法及装置,所述方法包括:检查待提交的版本文件是否为待提交版本的源码文件;如果是,则检查所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件,所述相匹配是指编译文件由对源码文件进行编译得到;如果存在,则将所述待提交的版本文件提交至版本管理仓库;如果不存在,则拒绝将提交的版本文件提交至版本管理仓库。应用该方法,可以实现在将版本文件提交至版本管理仓库之前,自动检查待提交的版本文件中的源码文件是否已通过版本编译,将已通过版本编译的版本文件提交至版本管理仓库,由此可以避免发生版本文件未通过版本编译而造成的一系列不必要的操作,提高后续版本发布、交付的效率。
Description
技术领域
本申请涉及软件版本技术领域,尤其涉及一种版本管理方法及装置。
背景技术
随着业务需求的频繁变更、现代IT企业中软件产品代码量的快速增加,软件版本的管理也遇到了更多调整。在软件版本管理中,最常见的一种问题是:开发人员提交的版本文件未通过版本编译。出现该类问题的原因有很多,比较典型的一种是在开发人员对版本文件进行修改时将相同的代码修改后合入多个代码分支,但之后只对一个代码分支进行版本编译。
现有技术中,开发人员提交版本文件之后,版本管理人员会定期验证并发布版本,若开发人员提交的版本文件未通过版本编译,那么版本管理人员会通知开发人员进行修改,而开发人员修改之后还要经过项目经理审核。由此可见,一旦发生版本文件未通过版本编译,则需要相关人员付出大量人力,并耗费较长时间去解决,很容易导致版本延期交付。
发明内容
有鉴于此,本申请提供一种版本管理方法及装置,以解决现有技术中一旦发生版本文件未通过版本编译,则需要相关人员付出大量人力,并耗费较长时间去解决,很容易导致版本延期交付的问题。
具体地,本申请是通过如下技术方案实现的:
根据本申请实施例的第一方面,提供一种版本管理方法,所述方法包括:
检查待提交的版本文件是否为待提交版本的源码文件;
如果是,则检查所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件,所述相匹配是指编译文件由对源码文件进行编译得到;
如果存在,则将所述待提交的版本文件提交至版本管理仓库;
如果不存在,则拒绝将提交的版本文件提交至版本管理仓库。
在一实施例中,所述检查源码文件所在目录下是否存在与该源码文件相匹配的编译文件,包括:
检查源码文件所在目录下是否存在与该源码文件具有相同文件名的编译文件;
如果不存在,则确定所述源码文件所在目录下不存在与该源码文件相匹配的编译文件;
如果存在,则获取所述源码文件的第一更新时间,并获取与该源码文件具有相同文件名的编译文件的第二更新时间;
依据所述第一更新时间和所述第二更新时间确定所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件。
在一实施例中,所述依据第一更新时间和第二更新时间确定所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件,包括:
比较所述第一更新时间和所述第二更新时间;
如果所述第一更新时间晚于所述第二更新时间,则确定所述源码文件所在目录下不存在与该源码文件相匹配的编译文件;
如果所述第一更新时间早于所述第二更新时间,则确定所述源码文件所在目录下存在与该源码文件相匹配的编译文件,并将所述与该源码文件具有相同文件名的编译文件确定为与该源码文件相匹配的编译文件。
根据本申请实施例的第二方面,提供一种版本管理方法,应用于版本管理工具服务端,所述方法包括:
在接收到版本文件的提交请求后,执行预配置的钩子脚本以向版本管理工具客户端发送用于指示版本编译检查的指示消息,以使所述版本管理工具客户端检查待提交版本的源码文件所在目录下是否存在与该源码文件相匹配的编译文件,所述相匹配是指编译文件由对源码文件进行编译得到;
接收所述版本管理工具客户端发送的应答消息;
如果所述应答消息表示所述待提交版本的源码文件所在目录下不存在与该源码文件相匹配的编译文件,则拒绝将已获取的待提交的版本文件提交至版本管理仓库;如果所述应答消息表示所述待提交版本的源码文件所在目录下存在与该源码文件相匹配的编译文件,则将已获取的待提交的版本文件提交至版本管理仓库。
根据本申请实施例的第三方面,提供一种版本管理方法,所述方法应用于版本管理工具客户端,所述方法包括:
在接收到版本管理工具服务端通过执行预配置的钩子脚本而发送的用于指示版本编译检查的指示消息后,检查待提交的版本文件是否为待提交版本的源码文件;
如果是,则检查所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件,所述相匹配是指编译文件由对源码文件进行编译得到;
如果存在,则向所述版本管理工具服务端发送第一应答消息,以使所述版本管理工具服务端基于所述第一应答消息将已获取的待提交的版本文件提交至版本管理仓库;
如果不存在,则向所述版本管理工具服务端发送第二应答消息,以使所述版本管理工具服务端基于所述第二应答消息拒绝将已获取的待提交的版本文件提交至版本管理仓库。
在一实施例中,所述检查源码文件所在目录下是否存在与该源码文件相匹配的编译文件,包括:
检查源码文件所在目录下是否存在与该源码文件具有相同文件名的编译文件;
如果不存在,则确定所述源码文件所在目录下不存在与该源码文件相匹配的编译文件;
如果存在,则获取所述源码文件的第一更新时间,并获取与该源码文件具有相同文件名的编译文件的第二更新时间;
依据所述第一更新时间和所述第二更新时间确定所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件。
在一实施例中,所述依据第一更新时间和第二更新时间确定所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件,包括:
比较所述第一更新时间和所述第二更新时间;
如果所述第一更新时间晚于所述第二更新时间,则确定所述源码文件所在目录下不存在与该源码文件相匹配的编译文件;
如果所述第一更新时间早于所述第二更新时间,则确定所述源码文件所在目录下存在与该源码文件相匹配的编译文件,并将所述与该源码文件具有相同文件名的编译文件确定为与该源码文件相匹配的编译文件。
根据本申请实施例的第四方面,提供一种版本管理装置,所述装置包括:
第一检查模块,用于检查待提交的版本文件是否为待提交版本的源码文件;
第二检查模块,用于如果待提交的版本文件为待提交版本的源码文件,则检查所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件,所述相匹配是指编译文件由对源码文件进行编译得到;
版本提交模块,用于如果所述源码文件所在目录下存在与该源码文件相匹配的编译文件,则将所述待提交的版本文件提交至版本管理仓库;如果所述源码文件所在目录下不存在与该源码文件相匹配的编译文件,则拒绝将所述待提交的版本文件提交至版本管理仓库。
在一实施例中,所述第二检查模块检查源码文件所在目录下是否存在与该源码文件相匹配的编译文件,包括:
检查源码文件所在目录下是否存在与该源码文件具有相同文件名的编译文件;
如果不存在,则确定所述源码文件所在目录下不存在与该源码文件相匹配的编译文件;
如果存在,则获取所述源码文件的第一更新时间,并获取与该源码文件具有相同文件名的编译文件的第二更新时间;
依据所述第一更新时间和所述第二更新时间确定所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件。
在一实施例中,所述第二检查模块依据第一更新时间和第二更新时间确定所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件,包括:
比较所述第一更新时间和所述第二更新时间;
如果所述第一更新时间晚于所述第二更新时间,则确定所述源码文件所在目录下不存在与该源码文件相匹配的编译文件;
如果所述第一更新时间早于所述第二更新时间,则确定所述源码文件所在目录下存在与该源码文件相匹配的编译文件,并将所述与该源码文件具有相同文件名的编译文件确定为与该源码文件相匹配的编译文件。
根据本申请实施例的第五方面,提供一种版本管理装置,所述装置应用于版本管理工具服务端,所述装置包括:
脚本执行模块,用于在接收到版本文件的提交请求后,执行预配置的钩子脚本以向版本管理工具客户端发送用于指示版本编译检查的指示消息,以使所述版本管理工具客户端检查待提交版本的源码文件所在目录下是否存在与该源码文件相匹配的编译文件,所述相匹配是指编译文件由对源码文件进行编译得到;
消息接收模块,用于接收所述版本管理工具客户端发送的应答消息;
处理模块,用于如果所述应答消息表示所述待提交版本的源码文件所在目录下不存在与该源码文件相匹配的编译文件,则拒绝将已获取的待提交的版本文件提交至版本管理仓库;如果所述应答消息表示所述待提交版本的源码文件所在目录下存在与该源码文件相匹配的编译文件,则将已获取的待提交的版本文件提交至版本管理仓库。
根据本申请实施例的第六方面,提供一种版本管理装置,所述装置应用于版本管理工具客户端,所述装置包括:
第三检查模块,用于在接收到版本管理工具服务端通过执行预配置的钩子脚本而发送的用于指示版本编译检查的指示消息后,检查待提交的版本文件是否为待提交版本的源码文件;
第四检查模块,用于如果待提交的版本文件为待提交版本的源码文件,则检查所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件,所述相匹配是指编译文件由对源码文件进行编译得到;
应答模块,用于如果所述源码文件所在目录下存在与该源码文件相匹配的编译文件,则向所述版本管理工具服务端发送第一应答消息,以使所述版本管理工具服务端基于所述第一应答消息将已获取的待提交的版本文件提交至版本管理仓库;
如果所述源码文件所在目录下不存在与该源码文件相匹配的编译文件,则向所述版本管理工具服务端发送第二应答消息,以使所述版本管理工具服务端基于所述第二应答消息拒绝将已获取的待提交的版本文件提交至版本管理仓库。
本实施例提供的版本管理方法,通过检查待提交的版本文件是否为待提交版本的源码文件,如果是,则检查源码文件所在目录下是否存在与该源码文件相匹配的编译文件,如果存在,则将待提交的版本文件提交至版本管理仓库,如果不存在,则拒绝将待提交的版本文件提交至版本管理仓库,可以实现在将版本文件提交至版本管理仓库之前,自动检查待提交的版本文件中的源码文件是否已通过版本编译,将已通过版本编译的版本文件提交至版本管理仓库,由此可以避免发生版本文件未通过版本编译而造成的一系列不必要的操作,提高后续版本发布、交付的效率。
附图说明
图1为本申请一示例性实施例提供的一种版本管理方法的实施例流程图;
图2为本申请一示例性实施例提供的一种步骤102的实现流程;
图3为本申请另一示例性实施例提供的一种版本管理方法的实施例流程图;
图4为本申请版本管理装置所在电子设备的一种硬件结构图;
图5为本申请一示例性实施例提供的一种版本管理装置的实施例框图;
图6为本申请另一示例性实施例提供的一种版本管理装置的实施例框图;
图7为本申请又一示例性实施例提供的一种版本管理装置的实施例框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
请参见图1,为本申请一示例性实施例提供的一种版本管理方法的实施例流程图,在一个例子中,该方法可以应用于电子设备上,包括以下步骤:
步骤101:检查待提交的版本文件是否为待提交版本的源码文件。
在一实施例中,电子设备可以遍历待提交的版本文件列表,检查遍历到的版本文件的扩展名是否为.c或.cpp,如果是,则将遍历到的版本文件确定为待提交版本的源码文件。
步骤102:如果是,则检查源码文件所在目录下是否存在与该源码文件相匹配的编译文件;如果存在,则执行步骤103;如果不存在,则执行步骤104。
首先说明,在本申请实施例中,源码文件相匹配的编译文件是指对该源码文件进行编译得到的编译文件。举例来说,通过对源码文件进行编译得到一个编译文件,则该编译文件是与该源码文件相匹配的编译文件;假设之后对该源码文件进行了修改,修改源码文件之后并未对其进行编译,那么之前得到的编译文件则并非是对当前的源码文件进行编译得到,也即之前得到的编译文件并非是与该当前的源码文件相匹配的编译文件。
在本步骤中,通过执行步骤101检查出待提交的版本文件为待提交版本的源码文件后,可以检查该源码文件所在目录下是否存在与该源码文件相匹配的编译文件。至于是如何检查该源码文件所在目录下是否存在与该源码文件相匹配的编译文件的,下文中通过图2所示实施例举例示出,这里暂不赘述。
步骤103::将待提交的版本文件提交至版本管理仓库。
在本申请实施例中,通过执行步骤102,如果检查出源码文件所在目录下存在与该源码文件相匹配的编译文件,则可以确定该源码文件已通过版本编译,因此,则可以将待提交的版本文件提交至版本管理仓库。
步骤104:拒绝将待提交的版本文件提交至版本管理仓库。
在本申请实施例中,通过执行步骤102,如果检查出源码文件所在目录下不存在与该源码文件相匹配的编译文件,则可以确定该源码文件未通过版本编译,因此,则可以拒绝将待提交的版本文件提交至版本管理仓库。
至此,完成图1所示流程的相关描述。
由上述实施例可见,通过检查待提交的版本文件是否为待提交版本的源码文件,如果是,则检查源码文件所在目录下是否存在与该源码文件相匹配的编译文件,如果存在,则将待提交的版本文件提交至版本管理仓库,如果不存在,则拒绝将待提交的版本文件提交至版本管理仓库,可以实现在将版本文件提交至版本管理仓库之前,自动检查待提交的版本文件中的源码文件是否已通过版本编译,将已通过版本编译的版本文件提交至版本管理仓库,由此可以避免发生版本文件未通过版本编译而造成的一系列不必要的操作,提高后续版本发布、交付的效率。
下面通过图2所示实施例对检查源码文件所在目录下是否存在与该源码文件相匹配的编译文件的过程进行说明:
请参见图2,为本申请一示例性实施例提供的一种步骤102的实现流程,包括以下步骤:
步骤201:检查源码文件所在目录下是否存在于该源码文件具有相同文件名的编译文件,如果不存在,则执行步骤204;如果存在,则执行步骤202。
本领域技术人员可以理解的是,源码文件与其相匹配的编译文件具有相同的文件名,只是扩展名不同,编译文件的扩展名为.o。基于此,在本步骤中,可以首先检查源码文件所在目录下是否存在与该源码文件具有相同文件名的编译文件。
如果不存在,可以直接执行步骤204,确定源码文件所在目录下不存在与该源码文件相匹配的编译文件。
如果存在,则执行步骤202,如此处理的原因在于:在开发人员修改源码文件的场景下,由于之前已对修改前的源码文件进行过版本编译,因此,源码文件所在目录下会存在与该源码文件具有相同文件名的编译文件,但是,该具有相同文件名的编译文件并不一定是对修改后的源码文件进行版本编译得到的,也有可能是对修改前的源码文件进行版本编译得到的,因此,需要进一步检查该具有相同文件名的编译文件是否是对修改后的源码文件进行版本编译得到的,也即检查该具有相同文件名的编译文件是否为修改后的源码文件相匹配的编译文件。
步骤202:获取源码文件的第一更新时间,并获取与该源码文件具有相同文件名的编译文件的第二更新时间。
步骤203:比较第一更新时间和第二更新时间,如果第一更新时间晚于第二更新时间,则执行步骤204;如果第一更新时间早于第二更新时间,则执行步骤205。
步骤204:确定源码文件所在目录下不存在与该源码文件相匹配的编译文件。
步骤205:确定源码文件所在目录下存在与该源码文件相匹配的编译文件,并将与该源码文件具有相同文件名的编译文件确定为与该源码文件相匹配的编译文件。
下面对步骤202至步骤205进行统一说明:
在一实施例中,可以获取源码文件的更新时间(最近一次的更新时间,以下简称第一更新时间),并获取与该源码文件具有相同文件名的编译文件的更新时间(最近一次的更新时间,以下简称第二更新时间)。
之后,由于在提交版本文件时,正确的处理逻辑是先得到源码文件,再对源码文件进行版本编译得到编译文件,因此,在正常情况下,源码文件的更新时间早于与其相匹配的编译文件的更新时间。基于此,则可以依据第一更新时间和第二更新时间确定源码文件所在目录下是否存在与该源码文件相匹配的编译文件。
具体的,比较第一更新时间和第二更新时间,如果第一更新时间晚于第二更新时间,则可以执行步骤204,确定源码文件所在目录下不存在与该源码文件相匹配的编译文件;反之,如果第一更新时间早于第二更新时间,则可以执行步骤205,确定源码文件所在目录下存在与该源码文件相匹配的编译文件,并将与该源码文件具有相同文件名的编译文件确定为与该源码文件相匹配的编译文件。
至此,完成图2所示流程的相关描述。
通过图2所示流程,最终实现了检查源码文件所在目录下是否存在与该源码文件相匹配的编译文件。
在一示例性应用场景中,软件开发人员可以通过版本管理工具,例如SVN工具进行版本提交。在该应用场景中则可以应用本申请提出的版本管理方法,在版本提交事务完成之前检查待提交的版本文件中的源码文件是否均已通过版本编译,如果是,则可以将待提交的版本文件提交至版本管理仓库,如果否,则可以拒绝本次版本提交操作。下面通过图3所示实施例对在该应用场景中应用本申请提出的版本管理方法的过程进行说明:
请参见图3,为本申请另一示例性实施例提供的一种版本管理方法的实施例流程图,包括以下步骤:
步骤301:版本管理工具客户端向版本管理工具服务端发送版本文件的提交请求。
在应用中,版本管理工具客户端可以基于用户操作向版本管理工具服务端发送版本文件的提交请求。例如,在用户点击版本管理工具客户端提供的版本提交操作界面上的“提交”按钮后,版本管理工具客户端即可以向版本管理工具服务端发送版本文件的提交请求。
步骤302:版本管理工具服务端执行预配置的钩子脚本以向版本管理工具客户端发送用于指示版本编译检查的指示消息。
在一实施例中,可以预先在版本管理工具服务端预配置一个钩子脚本,例如可以在以下路径下添加一个钩子脚本:版本仓库文件夹\项目文件夹\hooks文件夹。该钩子脚本可用于拦截版本提交过程,即版本管理工具服务端在完成版本提交事务之前,可以执行该钩子脚本。
版本管理工具服务端通过执行该钩子脚本可以向版本管理工具客户端发送一个用于指示版本编译检查的指示消息。步骤303:版本管理工具客户端检查待提交的版本文件是否为待提交版本的源码文件。
步骤304:如果是,版本管理工具客户端检查源码文件所在目录下是否存在与该源码文件相匹配的编译文件;如果存在,执行步骤305;如果不存在,执行步骤306。
步骤305:版本管理工具客户端向版本管理工具服务端发送第一应答消息;执行步骤307。
步骤306:版本管理工具客户端向版本管理工具服务端发送第二应答消息;执行步骤308。
步骤307:版本管理工具服务端将已获取的待提交的版本文件提交至版本管理仓库;结束流程。步骤308:版本管理工具服务端拒绝将已获取的待提交的版本文件提交至版本管理仓库。
下面对步骤303至步骤308进行统一说明:
版本管理工具客户端在接收到上述指示消息后,则可以执行步骤303和步骤304以检查待提交版本的源码文件是否通过版本编译,至于步骤303和步骤304的详细描述,可以参见上述图1和图2所示实施例中的相关描述,这里不再赘述。
版本管理工具客户端执行完步骤304,如果检查出待提交版本的源码文件所在目录下存在与该源码文件相匹配的编译文件,也即待提交版本的源码文件通过版本编译,则可以执行步骤305,向版本管理工具服务端发送用于表示待提交版本的源码文件所在目录下存在与该源码文件相匹配的编译文件的第一应答消息,版本管理工具服务端在接收到该第一应答消息后,则可以执行步骤307,将已获取的待提交的版本文件提交至版本管理仓库。
版本管理工具客户端执行完步骤304,如果检查出待提交版本的源码文件所在目录下不存在与该源码文件相匹配的编译文件,也即待提交版本的源码文件未通过版本编译,则可以执行步骤306,向版本管理工具服务端发送用于表示待提交版本的源码文件所在目录下不存在与该源码文件相匹配的编译文件的第二应答消息,版本管理工具服务端在接收到该第二应答消息后,则可以执行步骤308,拒绝将已获取的待提交的版本文件提交至版本管理仓库。
至此,完成图3所示流程的相关描述。
由上述实施例可见,由于在将版本文件提交至版本管理仓库之前,自动检查待提交的版本文件中的源码文件是否已通过版本编译,将已通过版本编译的版本文件提交至版本管理仓库,由此可以避免发生版本文件未通过版本编译而造成的一系列不必要的操作,提高后续版本发布、交付的效率。
与前述版本管理方法的实施例相对应,本申请还提供了版本管理装置的实施例。
本申请版本管理装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请版本管理装置所在电子设备的一种硬件结构图,除了图4所示的处理器41、内存42、网络接口43、非易失性存储器44,以及内部总线45之外,实施例中版本管理装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
请参见图5,为本申请一示例性实施例提供的一种版本管理装置的实施例框图,所述装置包括:第一检查模块51、第二检查模块52,以及版本提交模块53。
其中,第一检查模块51,用于检查待提交的版本文件是否为待提交版本的源码文件;
第二检查模块52,用于如果待提交的版本文件为待提交版本的源码文件,则检查所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件,所述相匹配是指编译文件由对源码文件进行编译得到;
版本提交模块53,用于如果所述源码文件所在目录下存在与该源码文件相匹配的编译文件,则将所述待提交的版本文件提交至版本管理仓库;如果所述源码文件所在目录下不存在与该源码文件相匹配的编译文件,则拒绝将所述待提交的版本文件提交至版本管理仓库。
在一实施例中,所述第二检查模块52检查源码文件所在目录下是否存在与该源码文件相匹配的编译文件,包括:
检查源码文件所在目录下是否存在与该源码文件具有相同文件名的编译文件;
如果不存在,则确定所述源码文件所在目录下不存在与该源码文件相匹配的编译文件;
如果存在,则获取所述源码文件的第一更新时间,并获取与该源码文件具有相同文件名的编译文件的第二更新时间;
依据所述第一更新时间和所述第二更新时间确定所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件。
在一实施例中,所述第二检查模块52依据第一更新时间和第二更新时间确定所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件,包括:
比较所述第一更新时间和所述第二更新时间;
如果所述第一更新时间晚于所述第二更新时间,则确定所述源码文件所在目录下不存在与该源码文件相匹配的编译文件;
如果所述第一更新时间早于所述第二更新时间,则确定所述源码文件所在目录下存在与该源码文件相匹配的编译文件,并将所述与该源码文件具有相同文件名的编译文件确定为与该源码文件相匹配的编译文件。
请参见图6,为本申请另一示例性实施例提供的一种版本管理装置的实施例框图,所述装置可以应用于版本管理工具服务端,所述装置包括:脚本执行模块61、消息接收模块62,以及处理模块63。
脚本执行模块61,用于在接收到版本文件的提交请求后,执行预配置的钩子脚本以向版本管理工具客户端发送用于指示版本编译检查的指示消息,以使所述版本管理工具客户端检查待提交版本的源码文件所在目录下是否存在与该源码文件相匹配的编译文件,所述相匹配是指编译文件由对源码文件进行编译得到;
消息接收模块62,用于接收所述版本管理工具客户端发送的应答消息;
处理模块63,用于如果所述应答消息表示所述待提交版本的源码文件所在目录下不存在与该源码文件相匹配的编译文件,则拒绝将已获取的待提交的版本文件提交至版本管理仓库;如果所述应答消息表示所述待提交版本的源码文件所在目录下存在与该源码文件相匹配的编译文件,则将已获取的待提交的版本文件提交至版本管理仓库。
请参见图7,为本申请又一示例性实施例提供的一种版本管理装置的实施例框图,所述装置可以应用于版本管理工具客户端,所述装置包括:第三检查模块71、第四检查模块72,以及应答模块73。
其中,第三检查模块71,用于在接收到版本管理工具服务端通过执行预配置的钩子脚本而发送的用于指示版本编译检查的指示消息后,检查待提交的版本文件是否为待提交版本的源码文件;
第四检查模块72,用于如果待提交的版本文件为待提交版本的源码文件,则检查所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件,所述相匹配是指编译文件由对源码文件进行编译得到;
应答模块73,用于如果所述源码文件所在目录下存在与该源码文件相匹配的编译文件,则向所述版本管理工具服务端发送第一应答消息,以使所述版本管理工具服务端基于所述第一应答消息将已获取的待提交的版本文件提交至版本管理仓库;
如果所述源码文件所在目录下不存在与该源码文件相匹配的编译文件,则向所述版本管理工具服务端发送第二应答消息,以使所述版本管理工具服务端基于所述第二应答消息拒绝将已获取的待提交的版本文件提交至版本管理仓库。
在一实施例中,所述第四检查模块72检查源码文件所在目录下是否存在与该源码文件相匹配的编译文件,包括:
检查源码文件所在目录下是否存在与该源码文件具有相同文件名的编译文件;
如果不存在,则确定所述源码文件所在目录下不存在与该源码文件相匹配的编译文件;
如果存在,则获取所述源码文件的第一更新时间,并获取与该源码文件具有相同文件名的编译文件的第二更新时间;
依据所述第一更新时间和所述第二更新时间确定所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件。
在一实施例中,所述第四检查模块72依据第一更新时间和第二更新时间确定所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件,包括:
比较所述第一更新时间和所述第二更新时间;
如果所述第一更新时间晚于所述第二更新时间,则确定所述源码文件所在目录下不存在与该源码文件相匹配的编译文件;
如果所述第一更新时间早于所述第二更新时间,则确定所述源码文件所在目录下存在与该源码文件相匹配的编译文件,并将所述与该源码文件具有相同文件名的编译文件确定为与该源码文件相匹配的编译文件。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种版本管理方法,其特征在于,所述方法包括:
检查待提交的版本文件是否为待提交版本的源码文件;
如果是,则检查所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件,所述相匹配是指编译文件由对源码文件进行编译得到;
如果存在,则将所述待提交的版本文件提交至版本管理仓库;
如果不存在,则拒绝将待提交的版本文件提交至版本管理仓库。
2.根据权利要求1所述的方法,其特征在于,所述检查源码文件所在目录下是否存在与该源码文件相匹配的编译文件,包括:
检查源码文件所在目录下是否存在与该源码文件具有相同文件名的编译文件;
如果不存在,则确定所述源码文件所在目录下不存在与该源码文件相匹配的编译文件;
如果存在,则获取所述源码文件的第一更新时间,并获取与该源码文件具有相同文件名的编译文件的第二更新时间;
依据所述第一更新时间和所述第二更新时间确定所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件。
3.根据权利要求2所述的方法,其特征在于,所述依据第一更新时间和第二更新时间确定所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件,包括:
比较所述第一更新时间和所述第二更新时间;
如果所述第一更新时间晚于所述第二更新时间,则确定所述源码文件所在目录下不存在与该源码文件相匹配的编译文件;
如果所述第一更新时间早于所述第二更新时间,则确定所述源码文件所在目录下存在与该源码文件相匹配的编译文件,并将所述与该源码文件具有相同文件名的编译文件确定为与该源码文件相匹配的编译文件。
4.一种版本管理方法,其特征在于,所述方法应用于版本管理工具服务端,所述方法包括:
在接收到版本文件的提交请求后,执行预配置的钩子脚本以向版本管理工具客户端发送用于指示版本编译检查的指示消息,以使所述版本管理工具客户端检查待提交版本的源码文件所在目录下是否存在与该源码文件相匹配的编译文件,所述相匹配是指编译文件由对源码文件进行编译得到;
接收所述版本管理工具客户端发送的应答消息;
如果所述应答消息表示所述待提交版本的源码文件所在目录下不存在与该源码文件相匹配的编译文件,则拒绝将已获取的待提交的版本文件提交至版本管理仓库;如果所述应答消息表示所述待提交版本的源码文件所在目录下存在与该源码文件相匹配的编译文件,则将已获取的待提交的版本文件提交至版本管理仓库。
5.一种版本管理方法,其特征在于,所述方法应用于版本管理工具客户端,所述方法包括:
在接收到版本管理工具服务端通过执行预配置的钩子脚本而发送的用于指示版本编译检查的指示消息后,检查待提交的版本文件是否为待提交版本的源码文件;
如果是,则检查所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件,所述相匹配是指编译文件由对源码文件进行编译得到;
如果存在,则向所述版本管理工具服务端发送第一应答消息,以使所述版本管理工具服务端基于所述第一应答消息将已获取的待提交的版本文件提交至版本管理仓库;
如果不存在,则向所述版本管理工具服务端发送第二应答消息,以使所述版本管理工具服务端基于所述第二应答消息拒绝将已获取的待提交的版本文件提交至版本管理仓库。
6.根据权利要求5所述的方法,其特征在于,所述检查源码文件所在目录下是否存在与该源码文件相匹配的编译文件,包括:
检查源码文件所在目录下是否存在与该源码文件具有相同文件名的编译文件;
如果不存在,则确定所述源码文件所在目录下不存在与该源码文件相匹配的编译文件;
如果存在,则获取所述源码文件的第一更新时间,并获取与该源码文件具有相同文件名的编译文件的第二更新时间;
依据所述第一更新时间和所述第二更新时间确定所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件。
7.根据权利要求6所述的方法,其特征在于,所述依据第一更新时间和第二更新时间确定所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件,包括:
比较所述第一更新时间和所述第二更新时间;
如果所述第一更新时间晚于所述第二更新时间,则确定所述源码文件所在目录下不存在与该源码文件相匹配的编译文件;
如果所述第一更新时间早于所述第二更新时间,则确定所述源码文件所在目录下存在与该源码文件相匹配的编译文件,并将所述与该源码文件具有相同文件名的编译文件确定为与该源码文件相匹配的编译文件。
8.一种版本管理装置,其特征在于,所述装置包括:
第一检查模块,用于检查待提交的版本文件是否为待提交版本的源码文件;
第二检查模块,用于如果待提交的版本文件为待提交版本的源码文件,则检查所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件,所述相匹配是指编译文件由对源码文件进行编译得到;
版本提交模块,用于如果所述源码文件所在目录下存在与该源码文件相匹配的编译文件,则将所述待提交的版本文件提交至版本管理仓库;如果所述源码文件所在目录下不存在与该源码文件相匹配的编译文件,则拒绝将所述待提交的版本文件提交至版本管理仓库。
9.一种版本管理装置,其特征在于,所述装置应用于版本管理工具服务端,所述装置包括:
脚本执行模块,用于在接收到版本文件的提交请求后,执行预配置的钩子脚本以向版本管理工具客户端发送用于指示版本编译检查的指示消息,以使所述版本管理工具客户端检查待提交版本的源码文件所在目录下是否存在与该源码文件相匹配的编译文件,所述相匹配是指编译文件由对源码文件进行编译得到;
消息接收模块,用于接收所述版本管理工具客户端发送的应答消息;
处理模块,用于如果所述应答消息表示所述待提交版本的源码文件所在目录下不存在与该源码文件相匹配的编译文件,则拒绝将已获取的待提交的版本文件提交至版本管理仓库;如果所述应答消息表示所述待提交版本的源码文件所在目录下存在与该源码文件相匹配的编译文件,则将已获取的待提交的版本文件提交至版本管理仓库。
10.一种版本管理装置,其特征在于,所述装置应用于版本管理工具客户端,所述装置包括:
第三检查模块,用于在接收到版本管理工具服务端通过执行预配置的钩子脚本而发送的用于指示版本编译检查的指示消息后,检查待提交的版本文件是否为待提交版本的源码文件;
第四检查模块,用于如果待提交的版本文件为待提交版本的源码文件,则检查所述源码文件所在目录下是否存在与该源码文件相匹配的编译文件,所述相匹配是指编译文件由对源码文件进行编译得到;
应答模块,用于如果所述源码文件所在目录下存在与该源码文件相匹配的编译文件,则向所述版本管理工具服务端发送第一应答消息,以使所述版本管理工具服务端基于所述第一应答消息将已获取的待提交的版本文件提交至版本管理仓库;
如果所述源码文件所在目录下不存在与该源码文件相匹配的编译文件,则向所述版本管理工具服务端发送第二应答消息,以使所述版本管理工具服务端基于所述第二应答消息拒绝将已获取的待提交的版本文件提交至版本管理仓库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911315943.2A CN111124478A (zh) | 2019-12-19 | 2019-12-19 | 版本管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911315943.2A CN111124478A (zh) | 2019-12-19 | 2019-12-19 | 版本管理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111124478A true CN111124478A (zh) | 2020-05-08 |
Family
ID=70500307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911315943.2A Pending CN111124478A (zh) | 2019-12-19 | 2019-12-19 | 版本管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124478A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111752572A (zh) * | 2020-06-29 | 2020-10-09 | 百度在线网络技术(北京)有限公司 | 编译方法、装置、设备及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035892A (zh) * | 2010-12-23 | 2011-04-27 | 中科方德软件有限公司 | 操作系统版本自动发布和软件包自动更新的系统及方法 |
CN103309706A (zh) * | 2013-05-24 | 2013-09-18 | 中标软件有限公司 | 基于Linux操作系统的内存文件系统制备方法及单元 |
CN105630569A (zh) * | 2015-12-17 | 2016-06-01 | 北京金山安全软件有限公司 | 一种软件源代码的处理方法、装置及电子设备 |
CN105653287A (zh) * | 2015-12-31 | 2016-06-08 | 北京元心科技有限公司 | 一种程序自动版本发布方法和装置 |
CN106095681A (zh) * | 2016-06-14 | 2016-11-09 | 深圳市彬讯科技有限公司 | 一种SVN集成JSHint代码检测方法及其系统 |
CN106775912A (zh) * | 2016-12-15 | 2017-05-31 | 广州视源电子科技股份有限公司 | 软件发布方法及系统 |
CN106909434A (zh) * | 2017-02-28 | 2017-06-30 | 杭州迪普科技股份有限公司 | 可执行程序中未定义函数的检测方法及装置 |
CN107656734A (zh) * | 2017-08-21 | 2018-02-02 | 北京北信源软件股份有限公司 | 更新代码版本信息的方法、系统、可读介质和存储控制器 |
CN108804107A (zh) * | 2018-05-21 | 2018-11-13 | 北京小米移动软件有限公司 | 应用编译方法及装置 |
CN109240669A (zh) * | 2018-10-26 | 2019-01-18 | 苏州浪潮智能软件有限公司 | 一种自动化集成部署软件开发模式 |
-
2019
- 2019-12-19 CN CN201911315943.2A patent/CN111124478A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035892A (zh) * | 2010-12-23 | 2011-04-27 | 中科方德软件有限公司 | 操作系统版本自动发布和软件包自动更新的系统及方法 |
CN103309706A (zh) * | 2013-05-24 | 2013-09-18 | 中标软件有限公司 | 基于Linux操作系统的内存文件系统制备方法及单元 |
CN105630569A (zh) * | 2015-12-17 | 2016-06-01 | 北京金山安全软件有限公司 | 一种软件源代码的处理方法、装置及电子设备 |
CN105653287A (zh) * | 2015-12-31 | 2016-06-08 | 北京元心科技有限公司 | 一种程序自动版本发布方法和装置 |
CN106095681A (zh) * | 2016-06-14 | 2016-11-09 | 深圳市彬讯科技有限公司 | 一种SVN集成JSHint代码检测方法及其系统 |
CN106775912A (zh) * | 2016-12-15 | 2017-05-31 | 广州视源电子科技股份有限公司 | 软件发布方法及系统 |
CN106909434A (zh) * | 2017-02-28 | 2017-06-30 | 杭州迪普科技股份有限公司 | 可执行程序中未定义函数的检测方法及装置 |
CN107656734A (zh) * | 2017-08-21 | 2018-02-02 | 北京北信源软件股份有限公司 | 更新代码版本信息的方法、系统、可读介质和存储控制器 |
CN108804107A (zh) * | 2018-05-21 | 2018-11-13 | 北京小米移动软件有限公司 | 应用编译方法及装置 |
CN109240669A (zh) * | 2018-10-26 | 2019-01-18 | 苏州浪潮智能软件有限公司 | 一种自动化集成部署软件开发模式 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111752572A (zh) * | 2020-06-29 | 2020-10-09 | 百度在线网络技术(北京)有限公司 | 编译方法、装置、设备及存储介质 |
CN111752572B (zh) * | 2020-06-29 | 2023-03-14 | 百度在线网络技术(北京)有限公司 | 编译方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6069339B2 (ja) | オラクルリワインド:メタデータドリブンのアンドゥ | |
JP2019028525A5 (zh) | ||
CN106575244B (zh) | 确保云应用的高可用性的修补过程 | |
US8713554B1 (en) | Automated hotfix handling model | |
US20120291014A1 (en) | System and method for testing the development and updates in a test system using production/live data | |
CN110968478B (zh) | 日志采集方法、服务器及计算机存储介质 | |
US11055078B2 (en) | Systems and methods for deploying software products to environments | |
JP2019500680A (ja) | データ処理方法及び装置 | |
US11704302B2 (en) | Method, system and apparatus for processing database updates | |
US11544050B1 (en) | Software patch automation | |
US20210182391A1 (en) | Detecting Malicious Components Using Commit Histories | |
CN112395202B (zh) | 接口自动化测试方法、装置、计算机设备和存储介质 | |
US11636029B2 (en) | Testing as a service | |
US11573780B2 (en) | Automated generation of status chains for software updates | |
CN114185900B (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
US20070266371A1 (en) | Multiple correction requests occurring from a single request | |
US9342540B2 (en) | Method and system for creating and maintaining unique data repository | |
US20110258165A1 (en) | Automatic verification system for computer virus vaccine database and method thereof | |
CN111124478A (zh) | 版本管理方法及装置 | |
CN107992420B (zh) | 提测项目的管理方法及系统 | |
US10599424B2 (en) | Committed program-code management | |
CN111027977A (zh) | 一种数据验证的方法、装置及电子设备 | |
US9396239B2 (en) | Compiling method, storage medium and compiling apparatus | |
CN115098157A (zh) | 一种公共业务数据的处理方法及装置 | |
CN114371870A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200508 |
|
RJ01 | Rejection of invention patent application after publication |