一种增量版本更新方法、装置、存储介质及计算机设备转让专利

申请号 : CN202010712392.X

文献号 : CN111796855A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王鹏

申请人 : 大箴(杭州)科技有限公司

摘要 :

本发明公开了一种增量版本更新方法、装置、存储介质及计算机设备,涉及计算机技术领域,主要目的在于能够在增量版本更新中,自动对版本控制系统进行分支合并,根据源文件的不同状态,对源文件进行相应的处理,并生成版本更新日志。所述方法包括:基于版本控制系统的源分支,获取预设条件下的修改日志;解析所述修改日志,得到源文件信息,其中,所述源文件信息包括源文件的状态标识以及路径信息;将所述源分支下的源文件合并至目标分支;根据状态标识以及路径信息,对所述目标分支下的源文件进行相应的处理,以实现增量版本更新。本发明适用于增量版本的更新。

权利要求 :

1.一种增量版本更新方法,其特征在于,包括:

基于版本控制系统的源分支,获取预设条件下的修改日志;

解析所述修改日志,得到源文件信息,其中,所述源文件信息包括源文件的状态标识以及路径信息;

将所述源分支下的源文件合并至目标分支;

根据状态标识以及路径信息,对所述目标分支下的源文件进行相应的处理,以实现增量版本更新。

2.根据权利要求1所述的方法,其特征在于,所述解析所述修改日志,得到源文件信息,包括:根据待获取的状态标识、修改内容信息和路径信息,分别配置正则表达式;

利用所述正则表达式解析所述修改日志,得到所述源文件的状态标识、修改内容信息以及路径信息。

3.根据权利要求1所述的方法,其特征在于,所述将所述源分支下的源文件合并至目标分支,包括:定义版本仓库地址、源文件路径以及目标文件路径;

根据预设的冲突合并策略、所述版本仓库地址、所述源文件路径以及所述目标文件路径,将所述源文件由源分支合并至预设的目标分支。

4.根据权利要求1所述的方法,其特征在于,所述状态标识包括第一状态标识、第二状态标识及第三状态标识,所述根据状态标识以及路径信息,对所述目标分支下的源文件进行相应的处理,以实现增量版本更新,包括:识别所述源文件的状态标识;

若所述状态标识为第一状态标识,则将所述源文件按照所述路径信息,拷贝至目标文件目录下;

若所述状态标识为第二状态标识,则根据所述路径信息,将与所述源文件对应的目标文件进行删除;

若所述状态标识为第三状态标识,则根据所述路径信息,将与所述源文件对应的目标文件进行替换。

5.根据权利要求1所述的方法,其特征在于,所述根据状态标识以及路径信息,对所述目标分支下的源文件进行相应的处理,以实现增量版本更新之前,所述方法还包括:对所述源文件进行编译处理,得到与所述源文件具有映射关系的类文件或资源文件。

6.根据权利要求4所述的方法,其特征在于,所述若所述状态标识为第一状态标识,则将所述源文件按照所述路径信息,拷贝至目标文件目录下,包括:定义版本仓库地址;

根据所述版本仓库地址,将所述源文件添加至版本仓库;

根据所述路径信息,创建目标文件目录,并将所述源文件拷贝至所述目标文件目录下。

7.根据权利要求1所述的方法,其特征在于,所述源文件信息还包括修改内容信息,所述根据所述源文件的状态标识以及路径信息,对所述源文件进行相应的处理,以实现增量版本更新之后,所述方法还包括:根据所述源文件以及所述源文件的修改内容信息,生成版本更新日志。

8.一种增量版本更新装置,其特征在于,包括:

获取单元,用于基于版本控制系统的源分支,获取预设条件下的修改日志;

解析单元,用于解析所述修改日志,得到源文件信息,其中,所述源文件信息包括源文件的状态标识以及路径信息;

合并单元,用于将所述源分支下的源文件合并至目标分支;

处理单元,用于根据状态标识以及路径信息,对所述目标分支下的源文件进行相应的处理,以实现增量版本更新。

9.一种存储介质,其上存储有计算机程序,所述存储介质中存储有至少一可执行指令,所述执行指令使处理器执行如权利要求1-7中任一项所述的增量版本更新方法对应的操作。

10.一种计算机设备,包括处理器、存储器、通信接口和通信总线所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信,所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的增量版本更新方法对应的操作。

说明书 :

一种增量版本更新方法、装置、存储介质及计算机设备

技术领域

[0001] 本发明涉及计算机技术领域,特别是涉及一种增量版本更新方法、装置、存储介质及计算机设备。

背景技术

[0002] 多人团队协作修改代码和日志过程中,经常出现不必要的冲突,同时随着版本逐步稳定,需要增量的就某部分板块和代码进行更新,对于java项目通常需要产生对应的class字节码文件和资源文件。尤其是使用匿名内部类或静态类的java代码,一个java文件甚至会产生多个类文件,拷贝这些文件难免会出现遗漏导致不可预期错误产生。而发布过程一般就是将这些更改过的类文件及资源文件覆盖线上内容,从而实现增量更新的过程。
[0003] 目前,现有的增量版本更新过程,通常是开发人员手动将修改文件拷贝到目标路径或目录下。然而,这需要开发人员非常熟悉涉及的修改文件内容,并能准确对应修改文件相关的路径和目录、涉及的配置文件内容等。从而导致增量版本更新效率低,且难免会引入人为错误,导致更新过程存在风险点。

发明内容

[0004] 有鉴于此,本发明提供一种增量版本更新方法、装置、存储介质及计算机设备,主要目的在于能够解决现有增量发布过程需要开发人员手动将源文件拷贝到目标路径或目录下,更新效率低,且难免会引入人为错误,导致增量版本更新过程存在风险点的问题。
[0005] 依据本发明一个方面,提供了一种增量版本更新方法,包括:
[0006] 基于版本控制系统的源分支,获取预设条件下的修改日志;
[0007] 解析所述修改日志,得到源文件信息,其中,所述源文件信息包括源文件的状态标识以及路径信息;
[0008] 将所述源分支下的源文件合并至目标分支;
[0009] 根据状态标识以及路径信息,对所述目标分支下的源文件进行相应的处理,以实现增量版本更新。
[0010] 进一步地,所述解析所述修改日志,得到源文件信息,包括:
[0011] 根据待获取的状态标识、修改内容信息和路径信息,分别配置正则表达式;
[0012] 利用所述正则表达式解析所述修改日志,得到所述源文件的状态标识、修改内容信息以及路径信息。
[0013] 进一步地,所述将所述源分支下的源文件合并至目标分支,包括:
[0014] 定义版本仓库地址、源文件路径以及目标文件路径;
[0015] 根据预设的冲突合并策略、所述版本仓库地址、所述源文件路径以及所述目标文件路径,将所述源文件由源分支合并至预设的目标分支。
[0016] 进一步地,所述状态标识包括第一状态标识、第二状态标识及第三状态标识,所述根据所述源文件的状态标识以及路径信息,对所述源文件进行相应的处理,以实现增量版本更新,包括:
[0017] 识别所述源文件的状态标识;
[0018] 若所述状态标识为第一状态标识,则将所述源文件按照所述路径信息,拷贝至目标文件目录下;
[0019] 若所述状态标识为第二状态标识,则根据所述路径信息,将与所述源文件对应的目标文件进行删除;
[0020] 若所述状态标识为第三状态标识,则根据所述路径信息,将与所述源文件对应的目标文件进行替换。
[0021] 可选地,所述根据状态标识以及路径信息,对所述目标分支下的源文件进行相应的处理,以实现增量版本更新之前,所述方法还包括:
[0022] 对所述源文件进行编译处理,得到与所述源文件具有映射关系的类文件或资源文件。
[0023] 进一步地,所述若所述状态标识为第一状态标识,则将所述源文件按照所述路径信息,拷贝至目标文件目录下,包括:
[0024] 定义版本仓库地址;
[0025] 根据所述版本仓库地址,将所述源文件添加至版本仓库;
[0026] 根据所述路径信息,创建目标文件目录,并将所述源文件拷贝至所述目标文件目录下。
[0027] 可选地,所述源文件信息还包括修改内容信息,所述根据所述源文件的状态标识以及路径信息,对所述源文件进行相应的处理,以实现增量版本更新之后,所述方法还包括:
[0028] 根据所述源文件以及所述源文件的修改内容信息,生成版本更新日志。
[0029] 依据本发明二个方面,提供了一种增量版本更新装置,包括:
[0030] 获取单元,用于基于版本控制系统的源分支,获取预设条件下的修改日志;
[0031] 解析单元,用于解析所述修改日志,得到源文件信息,其中,所述源文件信息包括源文件的状态标识、修改内容信息以及路径信息;
[0032] 合并单元,用于将源分支下的源文件合并至目标分支;
[0033] 处理单元,用于根据所述源文件的状态标识以及路径信息,对所述源文件进行相应的处理,以实现增量版本更新。
[0034] 进一步地,所述解析单元,包括:
[0035] 配置模块,用于根据待获取的状态标识、修改内容信息和路径信息,分别配置正则表达式;
[0036] 解析模块,用于利用所述正则表达式解析所述修改日志,得到所述源文件的状态标识、修改内容信息以及路径信息。
[0037] 进一步地,所述合并单元,包括:
[0038] 定义模块,用于定义版本仓库地址、源文件路径以及目标文件路径;
[0039] 合并模块,用于根据预设的冲突合并策略、所述版本仓库地址、所述源文件路径以及所述目标文件路径,将所述源文件由源分支合并至预设的目标分支。
[0040] 进一步地,所述处理单元,包括:
[0041] 识别模块,用于识别所述源文件的状态标识;
[0042] 第一处理模块,用于若所述状态标识为第一状态标识,则将所述源文件按照所述路径信息,拷贝至目标文件目录下;
[0043] 第二处理模块,用于若所述状态标识为第二状态标识,则根据所述路径信息,将与所述源文件对应的目标文件进行删除;
[0044] 第三处理模块,用于若所述状态标识为第三状态标识,则根据所述路径信息,将与所述源文件对应的目标文件进行替换。
[0045] 可选地,所述装置还包括:
[0046] 编译单元,用于对所述源文件进行编译处理,得到与所述源文件具有映射关系的类文件或资源文件。
[0047] 进一步地,所述第一处理模块具体还用于定义版本仓库地址;根据所述版本仓库地址,将所述源文件添加至版本仓库;根据所述路径信息,创建目标文件目录,并将所述源文件拷贝至所述目标文件目录下。
[0048] 可选地,所述装置还包括:
[0049] 生成单元,用于根据所述源文件以及所述源文件的修改内容信息,生成版本更新日志。
[0050] 依据本发明第三方面,提供了一种存储介质,所述存储介质中存储有至少一可执行指令,所述执行指令使处理器执行以下步骤:基于版本控制系统的源分支,获取预设条件下的修改日志;解析所述修改日志,得到源文件信息,其中,所述源文件信息包括源文件的状态标识以及路径信息;将所述源分支下的源文件合并至目标分支;根据状态标识以及路径信息,对所述目标分支下的源文件进行相应的处理,以实现增量版本更新。
[0051] 依据本发明第四方面,提供了一种计算机设备,包括处理器、存储器、通信接口和通信总线所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信,所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行以下步骤:基于版本控制系统的源分支,获取预设条件下的修改日志;解析所述修改日志,得到源文件信息,其中,所述源文件信息包括源文件的状态标识以及路径信息;将所述源分支下的源文件合并至目标分支;根据状态标识以及路径信息,对所述目标分支下的源文件进行相应的处理,以实现增量版本更新。
[0052] 本发明提供一种增量版本更新方法、装置、存储介质及计算机设备,与现有技术通常是由开发人员手动将待发布文件拷贝到目标路径或目录下相比,本发明通过将基于版本控制系统的源分支,获取预设条件下的修改日志;解析所述修改日志,得到源文件信息,其中,所述源文件信息包括源文件的状态标识以及路径信息;将所述源分支下的源文件合并至目标分支;根据状态标识以及路径信息,对所述目标分支下的源文件进行相应的处理,以实现增量版本更新。从而能够通过预设的python脚本自动实现源文件的冲突合并和处理,提高更新的效率和准确率,减少更新过程中存在的风险。
[0053] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

[0054] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0055] 图1示出了本发明实施例提供的一种增量版本更新方法流程图;
[0056] 图2示出了本发明实施例提供的另一种增量版本更新方法流程图;
[0057] 图3示出了本发明实施例提供的一种增量版本更新装置的结构示意图;
[0058] 图4示出了本发明实施例提供的一种计算机设备的实体结构示意图。

具体实施方式

[0059] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0060] 如背景技术所述,目前,现有的增量版本更新过程,通常是开发人员手动将修改文件拷贝到目标路径或目录下。然而,这需要开发人员非常熟悉涉及的修改文件内容,并能准确对应修改文件相关的路径和目录、涉及的配置文件内容等。从而导致增量版本更新效率低,且难免会引入人为错误,导致更新过程存在风险点。
[0061] 为了解决上述问题,本发明实施例提供了一种增量版本更新方法,如图1所示,所述方法包括:
[0062] 101、基于版本控制系统的源分支,获取预设条件下的修改日志。
[0063] 其中,所述源分支具体可以包括UAT分支,所述源分支下包括有待发布的代码文件以及修改日志。在实际应用场景中,UAT环境一般为预发布环境,UAT分支下的文件为即将发布的文件,即开发人员提交代码文件后经过测试满足发布要求的代码文件所在的分支。所述修改日志可以为开发人员提交代码文件同时提交的文件修改列表。
[0064] 对于本发明实施例,基于版本控制系统进行增量版本更新,所以,可以通过版本控制系统的svn log指令获取开发人员提交的修改日志。同时,可以通过修改svn log指令的参数来获取指定条件下的修改日志。所述指定条件具体可以包括:1)指定的开发人员提交的修改日志,如只获取开发人员甲提交的修改日志;2)指定的时间范围内提交的修改日志,如只获取2020年6月1日~2020年6月2日提交的修改日志;3)指定状态的修改日志,如只获取状态为删除的修改日志。需要说明的是,在实际应用场景中,增量版本更新的过程中需要记录修改内容,而基于版本控制系统很难将开发人员提交的修改日志进行复制和整合,本发明实施例通过svn log指令可以获取指定条件下的修改日志,从而提高增量版本更新的效率。
[0065] 102、解析所述修改日志,得到源文件信息。
[0066] 其中,所述源文件信息包括源文件的状态标识、修改内容信息以及路径信息。所述状态标识具体可以包括修改、新增和删除三种状态。需要说明的是,在实际应用场景中,所述源文件的状态标识还可以包括更新,但由于其不涉及任何修改,因此在本发明实施例中未具体说明。具体地,可以解析所述源分支下的修改日志,得到所述源分支下的源文件信息,包括状态标识、修改内容信息和路径信息等。以便于后续根据所述源文件信息实现版本的增量更新。
[0067] 103、将源分支下的源文件合并至目标分支。
[0068] 其中,所述将源分支下的源文件合并至目标分支的过程可以包括:根据冲突合并策略,将源分支合并至目标分支。具体地,可以采用svn update-accept tc策略进行分支合并前的更新策略处理,同时要考虑本地某些文件目录或文件不存在的情况下,通过版本更新导致的无法对源分支进行比较的情况,因此需要在当前分支上溯源到更新前目录上执行svn merge–accept tc命令操作。具体地,可以通过冲突合并策略对源分支下的文件进行冲突合并处理,从而将所述源分支下的文件合并至目标分支下,以便于后续对目标分支下的源文件进行统一的发布处理。
[0069] 104、根据所述源文件的状态标识以及路径信息,对所述源文件进行相应的处理,以实现增量版本更新。
[0070] 具体地,根据所述源文件的状态标识,可以对所述源文件采取不同的处理策略,例如,若所述源文件的状态标识为删除,则可以将所述源文件进行删除处理;若所述源文件的状态标识为修改,则可以利用所述源文件进行替换。所述路径信息可以用于源文件查找目标位置,可以根据所述路径信息,查找待删除、待新增或者待修改文件的目标位置,从而对所述源文件进行删除、新增或者修改处理。本发明实施例根据源文件的状态标识以及路径信息,可以对所述源文件采取不同的处理策略,以便于实现增量版本更新。
[0071] 本发明实施例提供了另一种增量版本更新方法,如图2所示,该方法包括:
[0072] 201、解析所述修改日志,得到源文件信息。
[0073] 本步骤与图1所示的步骤102方法相同,在此不再赘述。
[0074] 对于本发明实施例,所述步骤201具体可以包括:根据待抓取的状态标识、修改内容信息和路径信息,分别配置正则表达式;利用所述正则表达式解析所述修改日志,得到所述源文件的状态标识、修改内容信息以及路径信息。
[0075] 其中,所述正则表达式可以为通过单个字符串描述、抓取符合某特征的字符串,所述正则表达式可以包括所述待抓取的状态标识、修改内容信息和路径信息等目标字段。需要说明的是,所述正则表达式可以为用户根据实际情况自定义的正则表达式,所述正则表达式的数量可以根据待抓取的状态标识、修改内容信息和路径信息确定,在实际应用场景中,通常分别对应一个预先配置的正则表达式。具体地,可以获取修改日志,根据预先配置的正则表达式从所述修改日志中抓取源文件状态标识、修改内容信息和路径信息,以便于根据所述状态标识、修改内容信息和路径信息对源文件进行增量版本更新。
[0076] 202、所述将源分支下的源文件合并至目标分支。
[0077] 本步骤与图1所示的步骤103方法相同,在此不再赘述。
[0078] 对于本发明实施例,所述步骤202具体可以包括:定义版本仓库地址;根据预设的冲突合并策略以及所述版本仓库地址,将所述源文件由源分支合并至预设的目标分支。
[0079] 其中,所述版本仓库为版本控制系统的核心部分,是数据的中央仓库。所述版本仓库以典型的文件和目录结构形式文件系统树来保存信息。任意数量的客户端连接到版本仓库,读取、修改这些文件。客户端通过写数据将信息分享给其他人,通过读取数据获取别人共享的信息。需要说明的是,对于版本控制系统,需要将状态为新增的源文件添加至版本仓库中,才能实现版本控制系统对所述文件的信息记录。所述版本仓库地址可以为用户根据创建版本仓库对应的路径。所述预设的冲突合并策略具体可以为将所述源文件由源分支合并至目标分支时,采取的合并策略,具体可以由用户根据具体的需求进行设置。对于本发明实施例,可以采用svn update–accepttc策略,并解析文件修改状态进行不同操作,例如,状态为新增时,首先将所述源文件添加至版本仓库,然后执行路径转换,将源文件拷贝至目标文件目录;状态为删除时,标记所述源文件,并根据路径信息删除目标文件目录下的目标文件。
[0080] 本发明实施例通过将源分支下的源文件合并至目标分支,并通过预设的冲突合并策略,从而能够实现将不同分支下的源文件合并,以便于对所述源文件进行相应的处理,提高增量版本发布的效率。
[0081] 203、根据状态标识以及路径信息,对所述目标分支下的源文件进行相应的处理,以实现增量版本更新。
[0082] 本步骤与图1所示的步骤104方法相同,在此不再赘述。
[0083] 对于本发明实施例,所述步骤203具体可以包括:识别所述源文件的状态标识;若所述状态标识为第一状态标识,则将所述源文件按照所述路径信息,拷贝至目标文件目录下;若所述状态标识为第二状态标识,则根据所述路径信息,将与所述源文件对应的目标文件进行删除;若所述状态标识为第三状态标识,则根据所述路径信息,将与所述源文件对应的目标文件进行替换。
[0084] 其中,所述源文件的状态标识可以通过设置状态为的方式实现,如利用A表示新增状态,利用M表示修改状态,利用D表示删除状态,具体可以由用户自定义,本发明实施例不做具体规定。所述第一状态标识可以包括新增状态,所述第二状态标识可以包括删除状态,所述第三状态标识可以包括修改状态。具体地,识别各源文件的状态标识,若所述状态标识为第一状态标识,则可以先将所述源文件按照所述路径信息,拷贝至目标文件目录下;若所述状态标识为第二状态标识,则可以根据所述路径信息,将所述源文件对应的目标文件删除;若所述状态标识为第三状态标识,则可以根据所述路径信息,将与所述源文件对应的目标文件进行替换。从而能够实现对不同状态的源文件进行相应的处理,以实现增量版本更新。
[0085] 对于本发明实施例,所述若所述状态标识为第一状态标识,则将所述源文件按照所述路径信息,拷贝至目标文件目录下,具体还包括:定义版本仓库地址;根据所述版本仓库地址,将所述源文件添加至版本仓库;根据所述路径信息,创建目标文件目录,并将所述源文件拷贝至所述目标文件目录下。
[0086] 其中,所述定义版本仓库地址以及将所述源文件添加至版本仓库的过程在上文已经说明,此处不再赘述。具体地,可以定义版本仓库地址,根据所述版本仓库地址,将所述源文件添加至版本仓库,根据所述路径信息,创建目标文件目录,并将所述源文件拷贝至所述目标文件目录下。需要说明的是,由于对于新增加文件,通常不存在目标文件目录,因此,要先根据所述路径信息,在对应的位置创建目标文件目录,以便于可以将所述源文件拷贝至所述目标文件目录下,实现增量版本更新。
[0087] 204、对所述源文件进行编译处理,得到与所述源文件具有映射关系的类文件或资源文件。
[0088] 其中,所述类文件可以为java项目中的class字节码文件,所述资源文件可以为java项目中的配置文件,包括properties形式和XML形式,用于解决硬编码问题。所述编译处理可以通过Maven项目管理工具,执行Maven的mvn compile命令,对所述源文件进行编译处理,对于本发明实施例,可以通过预先制定的python脚本自动调用mvn compile命令,实现对源文件的编译处理,将编译得到的类文件或资源文件,所述类文件或所述资源文件可以保存在根目录下的classes文件夹中。在编译处理后,建立所述源文件与所述编译后文件的映射关系,以便于后续对所述编译后文件进行拷贝、替换或者删除操作。
[0089] 205、根据所述源文件以及所述源文件的修改内容信息,生成版本更新日志。
[0090] 其中,所述版本更新日志具体可以用于对本次增量版本更新进行说明。在实际应用场景中,可以以项目名+时间的方式生成所述版本更新日志。另外也可以通过接入jenkins或ansible程序作为自动化发布流程一部分实现无阻增量发布流程。所述Jenkins是一个开源的、提供友好操作界面的持续集成工具,起源于Hudson,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。所述Ansible是一个开源配置管理工具,可以使用它来自动化任务,部署应用程序实现IT基础架构。本发明实施例通过生成版本更新日志能够更加清晰的展示增量版本更新的文件修改记录,并且通过接入自动化程序,可以实现增量版本更新发布的自动化流程,提高增量版本更新的效率。
[0091] 本发明提供一种增量版本更新方法,通过基于版本控制系统的源分支,获取预设条件下的修改日志;解析所述修改日志,得到源文件信息,其中,所述源文件信息包括源文件的状态标识以及路径信息;将所述源分支下的源文件合并至目标分支;根据状态标识以及路径信息,对所述目标分支下的源文件进行相应的处理,以实现增量版本更新。从而能够通过预设的python脚本自动实现源文件的冲突合并和处理,提高更新的效率和准确率,减少更新过程中存在的风险。
[0092] 进一步地,作为图1的具体实现,本发明实施例提供了一种增量版本更新装置,如图3所示,所述装置包括:获取单元31、解析单元32、合并单元33和处理单元34。
[0093] 所述获取单元31,可以用于基于版本控制系统的源分支,获取预设条件下的修改日志;
[0094] 所述解析单元32,可以用于解析所述修改日志,得到源文件信息,其中,所述源文件信息包括源文件的状态标识、修改内容信息以及路径信息;
[0095] 所述合并单元33,可以用于将源分支下的源文件合并至目标分支;
[0096] 所述处理单元34,可以用于根据所述源文件的状态标识以及路径信息,对所述源文件进行相应的处理,以实现增量版本更新。
[0097] 进一步地,所述解析单元32,包括:
[0098] 配置模块321,可以用于根据待获取的状态标识、修改内容信息和路径信息,分别配置正则表达式;
[0099] 解析模块322,可以用于利用所述正则表达式解析所述修改日志,得到所述源文件的状态标识、修改内容信息以及路径信息。
[0100] 进一步地,所述合并单元33,包括:
[0101] 定义模块331,可以用于定义版本仓库地址、源文件路径以及目标文件路径;
[0102] 合并模块332,可以用于根据预设的冲突合并策略、所述版本仓库地址、所述源文件路径以及所述目标文件路径,将所述源文件由源分支合并至预设的目标分支。
[0103] 进一步地,所述处理单元34,包括:
[0104] 识别模块341,可以用于识别所述源文件的状态标识;
[0105] 第一处理模块342,可以用于若所述状态标识为第一状态标识,则将所述源文件按照所述路径信息,拷贝至目标文件目录下;
[0106] 第二处理模块343,可以用于若所述状态标识为第二状态标识,则根据所述路径信息,将与所述源文件对应的目标文件进行删除;
[0107] 第三处理模块344,可以用于若所述状态标识为第三状态标识,则根据所述路径信息,将与所述源文件对应的目标文件进行替换。
[0108] 可选地,所述装置还包括:
[0109] 编译单元35,可以用于对所述源文件进行编译处理,得到与所述源文件具有映射关系的类文件或资源文件。
[0110] 进一步地,所述第一处理模块342具体还用于定义版本仓库地址;根据所述版本仓库地址,将所述源文件添加至版本仓库;根据所述路径信息,创建目标文件目录,并将所述源文件拷贝至所述目标文件目录下。
[0111] 可选地,所述装置还包括:
[0112] 生成单元36,可以用于根据所述源文件以及所述源文件的修改内容信息,生成版本更新日志。
[0113] 需要说明的是,本发明实施例提供的一种增量版本更新装置所涉及各功能模块的其他相应描述,可以参考图1所示方法的对应描述,在此不再赘述。
[0114] 本发明提供一种增量版本更新装置,通过基于版本控制系统的源分支,获取预设条件下的修改日志;解析所述修改日志,得到源文件信息,其中,所述源文件信息包括源文件的状态标识以及路径信息;将所述源分支下的源文件合并至目标分支;根据状态标识以及路径信息,对所述目标分支下的源文件进行相应的处理,以实现增量版本更新。从而能够通过预设的python脚本自动实现源文件的冲突合并和处理,提高更新的效率和准确率,减少更新过程中存在的风险。
[0115] 基于上述如图1所示方法,相应的,本发明实施例还提供了一种存储介质,所述存储介质中存储有至少一可执行指令,所述执行指令使处理器执行以下步骤:基于版本控制系统的源分支,获取预设条件下的修改日志;解析所述修改日志,得到源文件信息,其中,所述源文件信息包括源文件的状态标识以及路径信息;将所述源分支下的源文件合并至目标分支;根据状态标识以及路径信息,对所述目标分支下的源文件进行相应的处理,以实现增量版本更新。
[0116] 基于上述如图1所示方法和如图3所示装置的实施例,本发明实施例还提供了一种计算机设备,如图4所示,处理器(processor)41、通信接口(Communications Interface)42、存储器(memory)43、以及通信总线44。其中:处理器41、通信接口42、以及存储器43通过通信总线44完成相互间的通信。通信接口44,用于与其它设备比如用户端或其它服务器等的网元通信。处理器41,用于执行程序,具体可以执行上述增量版本更新方法实施例中的相关步骤。具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。处理器41可能是中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
[0117] 终端包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。存储器43,用于存放程序。存储器43可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序具体可以用于使得处理器41执行以下操作:基于版本控制系统的源分支,获取预设条件下的修改日志;解析所述修改日志,得到源文件信息,其中,所述源文件信息包括源文件的状态标识以及路径信息;将所述源分支下的源文件合并至目标分支;根据状态标识以及路径信息,对所述目标分支下的源文件进行相应的处理,以实现增量版本更新。
[0118] 通过本发明的技术方案,能够基于版本控制系统的源分支,获取预设条件下的修改日志;解析所述修改日志,得到源文件信息,其中,所述源文件信息包括源文件的状态标识以及路径信息;将所述源分支下的源文件合并至目标分支;根据状态标识以及路径信息,对所述目标分支下的源文件进行相应的处理,以实现增量版本更新。从而能够通过预设的python脚本自动实现源文件的冲突合并和处理,提高更新的效率和准确率,减少更新过程中存在的风险。
[0119] 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0120] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。