掌桥专利:专业的专利平台
掌桥专利
首页

代码库的管理方法、装置、存储介质及电子设备

文献发布时间:2023-06-19 19:33:46


代码库的管理方法、装置、存储介质及电子设备

技术领域

本发明涉及金融科技领域,具体而言,涉及一种代码库的管理方法、装置、存储介质及电子设备。

背景技术

软件产品的开发,往往涉及多人共同参与以及多个代码库分支并行开发的场景,随着软件产品功能的不断增加,有些软件产品的代码库变得越来越大,并且,会存在一些历史的无用代码,导致代码库的开发人员和维护人员对代码库进行任何操作都变得很慢,例如,切换分支、提交推送代码等都会变慢,严重影响开发效率。因此,进行代码库瘦身,实现轻量代码库开发和维护非常有意义。相关技术中,往往采用人工拆分代码库的方式实现对代码库的瘦身,非常耗时耗力,存在拆分效率低的问题,从而导致对代码库的瘦身效率低,且存在安全隐患。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种代码库的管理方法、装置、存储介质及电子设备,以至少解决现有技术中由人工拆分代码库存在拆分效率低导致代码库的瘦身效率低的技术问题。

根据本发明实施例的一个方面,提供了一种代码库的管理方法,包括:从原代码库中获取所有有效分支的代码,其中,有效分支对应的分支状态为未锁定状态;根据所有有效分支的代码,确定所有有效分支之间的同步关系,其中,同步关系用于表征所有有效分支中的主分支与子分支之间的关联关系;根据同步关系,生成目标迁移策略,其中,目标迁移策略至少包括对所有有效分支的代码进行迁移的迁移顺序;根据目标迁移策略,将所有有效分支的代码从原代码库迁移至同名代码库,其中,同名代码库是根据所有有效分支构建的与原代码库的名称相同的代码库;根据同名代码库,生成目标代码库。

进一步地,代码库的管理方法还包括:根据所有有效分支的代码,获取目标分支的历史提交信息,其中,历史提交信息用于表征目标分支进行的至少一个历史提交的提交信息;根据目标提交对应的提交标识,从至少一个历史提交中确定目标提交,并从历史提交信息中获取目标提交的提交信息;根据目标提交的提交信息,确定目标提交对应的至少一个父提交,并获取至少一个父提交的提交信息;根据至少一个父提交的提交信息,确定同步关系。

进一步地,代码库的管理方法还包括:在根据目标迁移策略,将所有有效分支的代码从原代码库迁移至同名代码库之前,对原代码库的名称添加目标字段,生成第一代码库,其中,第一代码库为备份库;根据所有有效分支,构建同名代码库,其中,同名代码库中的分支与所有有效分支的名称相同。

进一步地,代码库的管理方法还包括:根据迁移顺序,对第一代码库和同名代码库分别进行检出操作,得到第一分支和第二分支,其中,第一分支为当前计划迁移的分支,第二分支为与第一分支名称相同的分支;判断第一分支是否为生产分支,其中,生产分支为迁移的第一个分支;在第一分支为非生产分支的情况下,获取生产分支的代码,并将生产分支的代码同步至第一分支,以生成生产分支与第一分支之间的同步关系;根据生产分支与第一分支之间的同步关系,执行拷贝操作,以将第一分支的代码从第一代码库迁移至同名代码库。

进一步地,代码库的管理方法还包括:在根据生产分支与第一分支之间的同步关系,执行拷贝操作之前,将第一分支中由生产分支同步而来的代码进行删除。

进一步地,代码库的管理方法还包括:在从原代码库中获取所有有效分支的代码之前,获取原代码库的所有分支,其中,所有分支包括无用分支和有效分支,无用分支对应的分支状态为锁定状态;根据所有分支的分支标识,确定所有分支对应的分支状态,其中,分支状态包括未锁定状态和锁定状态;从所有分支中获取分支状态为未锁定状态的所有分支,得到所有有效分支。

进一步地,代码库的管理方法还包括:在根据同名代码库,生成目标代码库之后,对第一代码库中的第一目标分支文件的属性信息与目标代码库中的第二目标分支文件的属性信息进行比对,得到比对结果,其中,第一目标分支文件与第二目标分支文件的文件名称相同,属性信息至少包括文件大小,比对结果表征第一目标分支文件的属性信息与第二目标分支文件的属性信息是否一致;在第一目标分支文件的属性信息与第二目标分支文件的属性信息一致的情况下,将目标代码库中的代码提交至远程代码仓库,其中,远程代码仓库用于存储代码。

根据本发明实施例的另一方面,还提供了一种代码库的管理装置,包括:获取模块,用于从原代码库中获取所有有效分支的代码,其中,有效分支对应的分支状态为未锁定状态;确定模块,用于根据所有有效分支的代码,确定所有有效分支之间的同步关系,其中,同步关系用于表征所有有效分支中的主分支与子分支之间的关联关系;第一处理模块,用于根据同步关系,生成目标迁移策略,其中,目标迁移策略至少包括对所有有效分支的代码进行迁移的迁移顺序;第二处理模块,用于根据目标迁移策略,将所有有效分支的代码从原代码库迁移至同名代码库,其中,同名代码库是根据所有有效分支构建的与原代码库的名称相同的代码库;第三处理模块,用于根据同名代码库,生成目标代码库。

根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的代码库的管理方法。

根据本发明实施例的另一方面,还提供了一种电子设备,该电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的代码库的管理方法。

在本发明实施例中,采用通过自动生成迁移策略和自动进行代码库拆分实现代码库瘦身的方式,首先从原代码库中获取所有有效分支的代码,然后根据所有有效分支的代码,确定所有有效分支之间的同步关系,然后根据同步关系,生成目标迁移策略,然后根据目标迁移策略,将所有有效分支的代码从原代码库迁移至同名代码库,然后根据同名代码库,生成目标代码库。其中,有效分支对应的分支状态为未锁定状态,同步关系用于表征所有有效分支中的主分支与子分支之间的关联关系,目标迁移策略至少包括对所有有效分支的代码进行迁移的迁移顺序,同名代码库是根据所有有效分支构建的与原代码库的名称相同的代码库。

在上述过程中,通过从原代码库中获取所有有效分支的代码,为后续确定所有有效分支之间的同步关系提供了数据基础;根据同步关系,可以生成目标迁移策略,从而能够根据目标迁移策略,将所有有效分支的代码从原代码库迁移至同名代码库,实现了对无效分支的剔除和对所有有效分支的代码的迁移,从而实现自动对代码库瘦身,节省了人工成本和时间成本,提高了对代码库的拆分效率,从而提高了对代码库的瘦身效率。并且,提高了代码库迁移的准确度,避免了由人为因素导致的风险。

由此可见,通过本发明的技术方案,达到了通过自动生成迁移策略和自动进行代码库拆分,高效得完成对代码库的瘦身工作的目的,从而实现了提高对代码库的瘦身效率的技术效果,进而解决了现有技术中由人工拆分代码库存在拆分效率低导致代码库的瘦身效率低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的代码库的管理方法的流程图;

图2是根据本发明实施例的一种可选的代码库的管理系统的结构示意图;

图3是根据本发明实施例的一种可选的生成代码库瘦身策略的流程图;

图4是根据本发明实施例的一种可选的分析分支间同步关系的流程图;

图5是根据本发明实施例的一种可选的变更代码库的流程图;

图6是根据本发明实施例的一种可选的代码库瘦身的流程图;

图7是根据本发明实施例的一种可选的代码库的管理装置的示意图;

图8是根据本发明实施例的一种可选的电子设备的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

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

需要说明的是,本发明所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。

实施例1

根据本发明实施例,提供了一种代码库的管理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种可选的代码库的管理方法的流程图,如图1所示,该方法包括如下步骤:

步骤S101,从原代码库中获取所有有效分支的代码,其中,有效分支对应的分支状态为未锁定状态。

在上述步骤中,可以通过应用系统、处理器、电子设备等装置从原代码库中获取所有有效分支的代码。可选的,图2是根据本发明实施例的一种可选的代码库的管理系统的结构示意图,如图2所示,代码库的管理系统包括代码库瘦身策略生成模块、代码库变更模块、代码库瘦身模块、瘦身结果校验模块。其中,通过代码库瘦身策略生成模块可以确定代码库的迁移方案,通过代码库变更模块可以创建新的代码库,通过代码库瘦身模块可以实现对有效分支的代码的迁移,通过瘦身结果校验模块可以对瘦身后的代码库进行核对,确保代码迁移的准确性。

可选的,通过代码库瘦身策略生成模块从原代码库中获取所有有效分支的代码,原代码库可以是软件产品的版本库,有效分支可以是未上锁的分支,例如,生产分支、测试分支、开发分支等。

需要说明的是,通过获取所有有效分支的代码,为后续确定所有有效分支之间的同步关系提供了数据基础,从而能够实现对代码库进行瘦身(即发现并剔除无效分支)的目的。

步骤S102,根据所有有效分支的代码,确定所有有效分支之间的同步关系,其中,同步关系用于表征所有有效分支中的主分支与子分支之间的关联关系。

步骤S103,根据同步关系,生成目标迁移策略,其中,目标迁移策略至少包括对所有有效分支的代码进行迁移的迁移顺序。

在上述步骤中,同步关系可以是有效分支之间谁要向谁同步的关系,例如,在软件产品的开发过程中,通过某个开发分支完成代码的编写之后,需要将代码文件同步至测试分支,此时,测试分支即为主分支,开发分支即为子分支。进一步地,通过测试分支完成测试后,需要将代码文件同步至生产分支,由版本制作人员应用生产分支并生成新的版本发布,然后,锁定该开发分支,此时,生产分支即为主分支,测试分支即为子分支。

可选的,根据所有有效分支的代码,可以确定出同步关系,例如,开发分支通过提交操作,实现将代码文件同步至测试分支,根据代码文件中记录的该测试分支的历史提交信息,可以识别出是哪个分支提交过来的,从而确定出同步关系。

进一步地,根据同步关系,可以生成目标迁移策略即瘦身策略。可选的,目标迁移策略至少包括迁移顺序,例如,先迁移生产分支,再迁移测试分支,最后迁移开发分支。

图3是根据本发明实施例的一种可选的生成代码库瘦身策略的流程图,如图3所示,首先克隆瘦身代码库即原代码库,以实现从原代码库中获取所有分支、所有源代码,然后获取代码库所有分支的分支状态,并对所有分支的分支状态进行判断,分析出有效分支信息,以实现从所有分支中确定出有效分支,并获取有效分支的代码,然后分析有效分支之间的同步关系,根据分析出的同步关系,生成瘦身策略。

步骤S104,根据目标迁移策略,将所有有效分支的代码从原代码库迁移至同名代码库,其中,同名代码库是根据所有有效分支构建的与原代码库的名称相同的代码库。

步骤S105,根据同名代码库,生成目标代码库。

在上述步骤中,在将所有有效分支的代码从原代码库迁移至同名代码库之前,需要变更瘦身代码库的名称,将原代码库作为备份库,例如,将原代码库的名称加上bak字段。

可选的,新建与原代码库的名称相同的同名代码库,并在同名代码库中新建与所有有效分支的名称相同的同名有效分支,从而能够根据前面自动生成的瘦身策略即目标迁移策略,将所有有效分支的代码从原代码库迁移至同名代码库,进而能够根据同名代码库,生成目标代码库,即在迁移完成后,得到新的、瘦身后的代码库(即目标代码库)。

可选的,目标迁移策略还可以包括迁移逻辑,即先同步,再迁移。例如,若当前迁移的有效分支为生产分支,则先将生产分支的代码文件同步至下一个要迁移的有效分支(即测试分支)上,然后再进行代码迁移。可选的,对于分支上相同的代码,可以按照同步的方式进行迁移,对于不同的代码,可以从原代码库中进行拷贝。例如,有效分支为生产分支A和测试分支B,若没有进行同步,则需要从原代码库的生产分支A中将代码拷贝至同名代码库的生产分支A中,再从原代码库的测试分支B中将代码拷贝至同名代码库的测试分支B中;若进行同步,则按照同步关系,可以直接将相同分支的相同代码从原代码库迁移至同名代码库,并可以将分支上不同的代码通过拷贝的方式从原代码库迁移至同名代码库,无需单独进行迁移,实现了自动对代码库瘦身,节省了人工成本和时间成本,提高了对代码库的拆分效率,从而提高了对代码库的瘦身效率。

基于上述步骤S101至步骤S105所限定的方案,可以获知,在本发明实施例中,在本发明实施例中,采用通过自动生成迁移策略和自动进行代码库拆分实现代码库瘦身的方式,首先从原代码库中获取所有有效分支的代码,然后根据所有有效分支的代码,确定所有有效分支之间的同步关系,然后根据同步关系,生成目标迁移策略,然后根据目标迁移策略,将所有有效分支的代码从原代码库迁移至同名代码库,然后根据同名代码库,生成目标代码库。其中,有效分支对应的分支状态为未锁定状态,同步关系用于表征所有有效分支中的主分支与子分支之间的关联关系,目标迁移策略至少包括对所有有效分支的代码进行迁移的迁移顺序,同名代码库是根据所有有效分支构建的与原代码库的名称相同的代码库。

容易注意到的是,在上述过程中,通过从原代码库中获取所有有效分支的代码,为后续确定所有有效分支之间的同步关系提供了数据基础;根据同步关系,可以生成目标迁移策略,从而能够根据目标迁移策略,将所有有效分支的代码从原代码库迁移至同名代码库,实现了对无效分支的剔除和对所有有效分支的代码的迁移,从而实现自动对代码库瘦身,节省了人工成本和时间成本,提高了对代码库的拆分效率,从而提高了对代码库的瘦身效率。并且,提高了代码库迁移的准确度,避免了由人为因素导致的风险。

由此可见,通过本发明的技术方案,达到了通过自动生成迁移策略和自动进行代码库拆分,高效得完成对代码库的瘦身工作的目的,从而实现了提高对代码库的瘦身效率的技术效果,进而解决了现有技术中由人工拆分代码库存在拆分效率低导致代码库的瘦身效率低的技术问题。

在一种可选的实施例中,在根据所有有效分支的代码,确定所有有效分支之间的同步关系的过程中,首先根据所有有效分支的代码,获取目标分支的历史提交信息,然后根据目标提交对应的提交标识,从至少一个历史提交中确定目标提交,并从历史提交信息中获取目标提交的提交信息,然后根据目标提交的提交信息,确定目标提交对应的至少一个父提交,并获取至少一个父提交的提交信息,然后根据至少一个父提交的提交信息,确定同步关系。其中,历史提交信息用于表征目标分支进行的至少一个历史提交的提交信息。

可选的,目标分支可以是所有有效分支中的任一分支,提交标识可以是提交的名称,历史提交至少包括修改提交和合并提交,例如,开发人员修改代码后,会做一次提交操作,该提交为修改提交,其对应的提交信息可以包括修改人员的ID、修改了哪些代码等。合并提交是伴随开发过程中发生的同步操作产生的提交,即对于当前提交而言,从另一个分支同步过来的提交。其中,目标提交可以是合并提交,目标提交对应的提交标识为merge。

图4是根据本发明实施例的一种可选的分析分支间同步关系的流程图,如图4所示,获取某一分支(即目标分支)的历史提交信息,然后分析该分支的历史提交信息,识别出merge合并提交,即根据目标提交对应的提交标识(即merge),可以从至少一个历史提交中确定目标提交。然后,从历史提交信息中获取merge合并提交的提交信息,分析merge合并提交,可以获取到merge合并提交的多个父提交,即根据目标提交的提交信息,确定目标提交对应的至少一个父提交。然后,获取至少一个父提交的提交信息,根据父提交信息,可以识别出分支间的同步关系,即根据至少一个父提交的提交信息,确定同步关系。其中,父提交的提交信息可以是父提交的哈希值,根据父提交的哈希值,可以得知当前的merge合并提交是由哪个分支同步过来的,从而确定了同步关系。

需要说明的是,在上述过程中,实现了自动确定所有有效分支之间的同步关系,从而能够提升对代码库的拆分效率。

在一种可选的实施例中,在根据目标迁移策略,将所有有效分支的代码从原代码库迁移至同名代码库之前,对原代码库的名称添加目标字段,生成第一代码库,然后根据所有有效分支,构建同名代码库。其中,第一代码库为备份库,同名代码库中的分支与所有有效分支的名称相同。

可选的,目标字段可以是bak字段等,在根据目标迁移策略,将所有有效分支的代码从原代码库迁移至同名代码库之前,通过代码库变更模块修改瘦身代码库(即原代码库)的名称,得到第一代码库,例如,统一修改为瘦身代码库的名称加上bak字段,得到第一代码库。可选的,将第一代码库做为备份库,然后根据所有有效分支,新建瘦身代码库(即同名代码库),并在同名代码库中新建所有有效分支。

图5是根据本发明实施例的一种可选的变更代码库的流程图,如图5所示,修改瘦身代码库的名称为其他名称,即对原代码库的名称添加目标字段,生成第一代码库,进一步地,新建同名瘦身代码库,即根据所有有效分支,构建同名代码库,进一步地,新建有效代码库分支,即在新的瘦身代码库中新建所有有效分支,有效分支需要进行代码迁移。

需要说明的是,在上述过程中,通过对原代码库的名称添加目标字段,生成第一代码库,为后续完成迁移后进行代码校验提供了参考依据,确保了迁移的准确性。

在一种可选的实施例中,在根据目标迁移策略,将所有有效分支的代码从原代码库迁移至同名代码库的过程中,根据迁移顺序,对第一代码库和同名代码库分别进行检出操作,得到第一分支和第二分支,然后判断第一分支是否为生产分支,在第一分支为非生产分支的情况下,获取生产分支的代码,并将生产分支的代码同步至第一分支,以生成生产分支与第一分支之间的同步关系,然后根据生产分支与第一分支之间的同步关系,执行拷贝操作,以将第一分支的代码从第一代码库迁移至同名代码库。其中,第一分支为当前计划迁移的分支,第二分支为与第一分支名称相同的分支,生产分支为迁移的第一个分支。

在一种可选的实施例中,在根据生产分支与第一分支之间的同步关系,执行拷贝操作之前,将第一分支中由生产分支同步而来的代码进行删除。

可选的,根据目标迁移策略即瘦身策略,通过代码库瘦身模块先对生产分支进行代码迁移,并根据已经确认好的同步关系,同步代码到其他分支,对其他分支逐一进行代码迁移。具体的,根据迁移顺序,确定当前计划迁移的分支,在两个代码库(即第一代码库和同名代码库)中检出名称相同的分支,得到第一分支和第二分支,然后判断第一分支(即当前计划迁移的分支)是否为生产分支,若当前计划迁移的分支不是生产分支,则需要在新代码库(即同名代码库)建立分支间的同步关系,具体的,获取生产分支的代码,并将生产分支的代码同步至第一分支,以生成生产分支与第一分支之间的同步关系,然后根据生产分支与第一分支之间的同步关系,执行拷贝操作,以将第一分支的代码从第一代码库迁移至同名代码库。

可选的,在根据生产分支与第一分支之间的同步关系,执行拷贝操作之前,将第一分支中由生产分支同步而来的代码进行删除,即在通过获取生产分支的代码,并将生产分支的代码同步至第一分支,实现在新代码库建立分支间的同步关系后,将同步过来的内容(例如,代码)进行删除,以防止同步后导致代码不一致。

例如,第一代码库中的某个开发分支中删除了代码文件A(即不包含代码文件A),但是在同名代码库中与其名称相同的开发分支中,从生产分支同步过来的内容包含代码文件A,从而使得同名代码库中的该开发分支中包含有代码文件A,导致两个代码库出现迁移错误。在本实施例中,通过将第一分支中由生产分支同步而来的代码进行删除,可以避免出现上述错误,提高了代码库迁移的准确度,避免了由人为因素导致的风险。

图6是根据本发明实施例的一种可选的代码库瘦身的流程图,如图6所示,遍历瘦身策略,对原代码库的所有有效分支进行逐一迁移。进一步地,检出备份瘦身代码库当前计划迁移的分支和对应新瘦身代码库的同名目标分支,即根据迁移顺序,对第一代码库和同名代码库分别进行检出操作,得到第一分支和第二分支。

进一步地,判断当前计划迁移的分支是否迁移生产分支。可选的,可以通过分支的名称进行判断,例如,当前分支的名称为master,则为生产分支。可选的,若当前计划迁移的分支是生产分支,则直接进行迁移,即拷贝原分支(第一分支)内容到目标分支(第二分支)。若当前计划迁移的分支不是生产分支,则在新瘦身代码库上,将生产分支代码同步到当前计划迁移的分支以确保同步关系的建立,进一步地,删除新瘦身版本库当前检出分支上同步过来的所有文件,以保障备份瘦身代码库当前正常分支上删除的文件能够体现到迁移后的新瘦身代码库目标分支上。

进一步地,在将同步过来的内容进行删除后,再进行迁移,即拷贝原分支(第一分支)内容到新瘦身版本库同名目标分支(第二分支)。

在一种可选的实施例中,在从原代码库中获取所有有效分支的代码之前,获取原代码库的所有分支,然后根据所有分支的分支标识,确定所有分支对应的分支状态,然后从所有分支中获取分支状态为未锁定状态的所有分支,得到所有有效分支。其中,所有分支包括无用分支和有效分支,无用分支对应的分支状态为锁定状态,分支状态包括未锁定状态和锁定状态。

可选的,分支标识可以是分支的锁定状态标志位,例如,锁定状态标志位为0,表征该分支对应的分支状态为未锁定状态,锁定状态标志位为1,表征该分支对应的分支状态为锁定状态。

可选的,在从原代码库中获取所有有效分支的代码之前,通过代码库瘦身策略生成模块获取原代码库的所有分支,然后识别分支的上锁状态,即根据所有分支的分支标识,确定所有分支对应的分支状态。

进一步地,从所有分支中获取分支状态为未锁定状态的所有分支,得到所有有效分支。可选的,已经完成生产流程的开发分支会上锁,该分支即为无用分支,其锁定状态标志位为1。

需要说明的是,在上述过程中,实现了对无效分支的剔除,从而能够实现对代码库进行瘦身的目的。

在一种可选的实施例中,在根据同名代码库,生成目标代码库之后,对第一代码库中的第一目标分支文件的属性信息与目标代码库中的第二目标分支文件的属性信息进行比对,得到比对结果,然后在第一目标分支文件的属性信息与第二目标分支文件的属性信息一致的情况下,将目标代码库中的代码提交至远程代码仓库。其中,第一目标分支文件与第二目标分支文件的文件名称相同,属性信息至少包括文件大小,比对结果表征第一目标分支文件的属性信息与第二目标分支文件的属性信息是否一致,远程代码仓库用于存储代码。

可选的,属性信息可以是文件大小、文件个数等信息。通过瘦身结果校验模块可以对瘦身后的代码库进行核对,确保代码迁移的准确性。具体的,瘦身结果校验模块对两个代码库中相同的分支进行比对,即对第一代码库中的第一目标分支文件的属性信息与目标代码库中的第二目标分支文件的属性信息进行比对,如图6所示,对比备份瘦身代码库和新瘦身代码库文件个数是否一致,若不一致,则返回提示信息,以提示迁移过程中出现了错误。若一致,则对比备份瘦身代码库和新瘦身代码库文件大小是否一致,若一致,则将目标代码库中的代码提交并推送至远程代码仓库,对瘦身后的代码库进行保存。

需要说明的是,在上述过程中,通过对瘦身后的代码库和备份代码库从文件大小、文件数量等多维度进行比对,确保了代码迁移的安全性,保障了代码库瘦身的正确性。

在本实施例中,通过自动判断代码库的分支状态、分支间同步关系,自动生成代码库瘦身策略并进行代码库的瘦身,以及对瘦身后的代码库进行正确性比对,实现了安全高效得自动化代码库瘦身工作。

由此可见,通过本发明的技术方案,达到了通过自动生成迁移策略和自动进行代码库拆分,高效得完成对代码库的瘦身工作的目的,从而实现了提高对代码库的瘦身效率的技术效果,进而解决了现有技术中由人工拆分代码库存在拆分效率低导致代码库的瘦身效率低的技术问题。

实施例2

根据本发明实施例,提供了一种代码库的管理装置的实施例,其中,图7是根据本发明实施例的一种可选的代码库的管理装置的示意图,如图7所示,该装置包括:获取模块701,用于从原代码库中获取所有有效分支的代码,其中,有效分支对应的分支状态为未锁定状态;确定模块702,用于根据所有有效分支的代码,确定所有有效分支之间的同步关系,其中,同步关系用于表征所有有效分支中的主分支与子分支之间的关联关系;第一处理模块703,用于根据同步关系,生成目标迁移策略,其中,目标迁移策略至少包括对所有有效分支的代码进行迁移的迁移顺序;第二处理模块704,用于根据目标迁移策略,将所有有效分支的代码从原代码库迁移至同名代码库,其中,同名代码库是根据所有有效分支构建的与原代码库的名称相同的代码库;第三处理模块705,用于根据同名代码库,生成目标代码库。

需要说明的是,上述获取模块701、确定模块702、第一处理模块703、第二处理模块704以及第三处理模块705对应于上述实施例中的步骤S101至步骤S105,五个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。

可选的,确定模块包括:第一获取模块,用于根据所有有效分支的代码,获取目标分支的历史提交信息,其中,历史提交信息用于表征目标分支进行的至少一个历史提交的提交信息;第一确定模块,用于根据目标提交对应的提交标识,从至少一个历史提交中确定目标提交,并从历史提交信息中获取目标提交的提交信息;第二确定模块,用于根据目标提交的提交信息,确定目标提交对应的至少一个父提交,并获取至少一个父提交的提交信息;第三确定模块,用于根据至少一个父提交的提交信息,确定同步关系。

可选的,代码库的管理装置还包括:第四处理模块,用于对原代码库的名称添加目标字段,生成第一代码库,其中,第一代码库为备份库;第五处理模块,用于根据所有有效分支,构建同名代码库,其中,同名代码库中的分支与所有有效分支的名称相同。

可选的,第二处理模块包括:第六处理模块,用于根据迁移顺序,对第一代码库和同名代码库分别进行检出操作,得到第一分支和第二分支,其中,第一分支为当前计划迁移的分支,第二分支为与第一分支名称相同的分支;第一判断模块,用于判断第一分支是否为生产分支,其中,生产分支为迁移的第一个分支;第二获取模块,用于在第一分支为非生产分支的情况下,获取生产分支的代码,并将生产分支的代码同步至第一分支,以生成生产分支与第一分支之间的同步关系;第七处理模块,用于根据生产分支与第一分支之间的同步关系,执行拷贝操作,以将第一分支的代码从第一代码库迁移至同名代码库。

可选的,代码库的管理装置还包括:第八处理模块,用于将第一分支中由生产分支同步而来的代码进行删除。

可选的,代码库的管理装置还包括:第三获取模块,用于获取原代码库的所有分支,其中,所有分支包括无用分支和有效分支,无用分支对应的分支状态为锁定状态;第四确定模块,用于根据所有分支的分支标识,确定所有分支对应的分支状态,其中,分支状态包括未锁定状态和锁定状态;第四获取模块,用于从所有分支中获取分支状态为未锁定状态的所有分支,得到所有有效分支。

可选的,代码库的管理装置还包括:比对模块,用于对第一代码库中的第一目标分支文件的属性信息与目标代码库中的第二目标分支文件的属性信息进行比对,得到比对结果,其中,第一目标分支文件与第二目标分支文件的文件名称相同,属性信息至少包括文件大小,比对结果表征第一目标分支文件的属性信息与第二目标分支文件的属性信息是否一致;第九处理模块,用于在第一目标分支文件的属性信息与第二目标分支文件的属性信息一致的情况下,将目标代码库中的代码提交至远程代码仓库,其中,远程代码仓库用于存储代码。

实施例3

根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的代码库的管理方法。

实施例4

根据本发明实施例的另一方面,还提供了一种电子设备,其中,图8是根据本发明实施例的一种可选的电子设备的示意图,如图8所示,电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的代码库的管理方法。处理器执行程序时实现以下步骤:从原代码库中获取所有有效分支的代码,其中,有效分支对应的分支状态为未锁定状态;根据所有有效分支的代码,确定所有有效分支之间的同步关系,其中,同步关系用于表征所有有效分支中的主分支与子分支之间的关联关系;根据同步关系,生成目标迁移策略,其中,目标迁移策略至少包括对所有有效分支的代码进行迁移的迁移顺序;根据目标迁移策略,将所有有效分支的代码从原代码库迁移至同名代码库,其中,同名代码库是根据所有有效分支构建的与原代码库的名称相同的代码库;根据同名代码库,生成目标代码库。

可选的,处理器执行程序时还实现以下步骤:根据所有有效分支的代码,获取目标分支的历史提交信息,其中,历史提交信息用于表征目标分支进行的至少一个历史提交的提交信息;根据目标提交对应的提交标识,从至少一个历史提交中确定目标提交,并从历史提交信息中获取目标提交的提交信息;根据目标提交的提交信息,确定目标提交对应的至少一个父提交,并获取至少一个父提交的提交信息;根据至少一个父提交的提交信息,确定同步关系。

可选的,处理器执行程序时还实现以下步骤:在根据目标迁移策略,将所有有效分支的代码从原代码库迁移至同名代码库之前,对原代码库的名称添加目标字段,生成第一代码库,其中,第一代码库为备份库;根据所有有效分支,构建同名代码库,其中,同名代码库中的分支与所有有效分支的名称相同。

可选的,处理器执行程序时还实现以下步骤:根据迁移顺序,对第一代码库和同名代码库分别进行检出操作,得到第一分支和第二分支,其中,第一分支为当前计划迁移的分支,第二分支为与第一分支名称相同的分支;判断第一分支是否为生产分支,其中,生产分支为迁移的第一个分支;在第一分支为非生产分支的情况下,获取生产分支的代码,并将生产分支的代码同步至第一分支,以生成生产分支与第一分支之间的同步关系;根据生产分支与第一分支之间的同步关系,执行拷贝操作,以将第一分支的代码从第一代码库迁移至同名代码库。

可选的,处理器执行程序时还实现以下步骤:在根据生产分支与第一分支之间的同步关系,执行拷贝操作之前,将第一分支中由生产分支同步而来的代码进行删除。

可选的,处理器执行程序时还实现以下步骤:在从原代码库中获取所有有效分支的代码之前,获取原代码库的所有分支,其中,所有分支包括无用分支和有效分支,无用分支对应的分支状态为锁定状态;根据所有分支的分支标识,确定所有分支对应的分支状态,其中,分支状态包括未锁定状态和锁定状态;从所有分支中获取分支状态为未锁定状态的所有分支,得到所有有效分支。

可选的,处理器执行程序时还实现以下步骤:在根据同名代码库,生成目标代码库之后,对第一代码库中的第一目标分支文件的属性信息与目标代码库中的第二目标分支文件的属性信息进行比对,得到比对结果,其中,第一目标分支文件与第二目标分支文件的文件名称相同,属性信息至少包括文件大小,比对结果表征第一目标分支文件的属性信息与第二目标分支文件的属性信息是否一致;在第一目标分支文件的属性信息与第二目标分支文件的属性信息一致的情况下,将目标代码库中的代码提交至远程代码仓库,其中,远程代码仓库用于存储代码。

本文中的设备可以是服务器、PC、PAD、手机等。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 多版本数据存储管理方法及装置、电子设备、存储介质
  • 集中式密码管理方法、装置、电子设备及计算机存储介质
  • 人力资源管理方法、装置、电子设备及存储介质
  • 智慧门店的管理方法、装置、电子设备及计算机存储介质
  • 一种AED电量管理方法、装置、电子设备及存储介质
  • 代码库管理方法、装置及计算机存储介质
  • 一种代码库管理方法、装置及计算机介质
技术分类

06120115956931