本申请涉及计算机领域,尤其涉及一种代码库项目的同步方法、装置、存储介质以及电子设备。
背景技术:
1、在yocto(一个开源项目,面向嵌入式系统开发,提供了一套工具和框架,帮助开发者构建适合特定硬件和应用需求的嵌入式linux系统)编译系统中,repo(repository,代码库)允许定义一个包含所有相关仓库的清单,并提供了一种简单的方法来同步和管理这些git仓库。当一套repo代码需要创建子项目,并且需要子项目的一些代码需要闭源,父项目更新时,通常通过手动将父项目中的各个git仓库代码同步到子项目的git仓库中,导致代码库项目的同步效率低、错误率高、安全性差。
技术实现思路
1、本申请提供了一种代码库项目的同步方法、装置、存储介质以及电子设备,以解决手动同步代码库项目的同步效率低、错误率高、安全性差的技术问题。
2、第一方面,本申请提供了一种代码库项目的同步方法,包括:在父代码库项目更新之后,获取上述父代码库项目的每一个子代码库项目的新提交标识和旧提交标识,其中,上述新提交标识记录在上述父代码库项目的第一git仓库中,上述旧提交标识记录在每一个上述子代码库项目的第二git仓库中;根据每一个上述子代码库项目的新提交标识和旧提交标识,从上述父代码库项目的所有子代码库项目中确定出至少一个待更新项目;确定上述待更新项目的访问状态,并根据上述访问状态以及上述父代码库项目的编译文件对上述待更新项目进行同步,其中,上述访问状态包括开源状态和闭源状态;根据上述待更新项目的新提交标识,对上述待更新项目的旧提交标识进行同步。
3、第二方面,本申请提供了一种代码库项目的同步装置,包括:获取模块,用于在父代码库项目更新之后,获取上述父代码库项目的每一个子代码库项目的新提交标识和旧提交标识,其中,上述新提交标识记录在上述父代码库项目的第一git仓库中,上述旧提交标识记录在每一个上述子代码库项目的第二git仓库中;确定模块,用于根据每一个上述子代码库项目的新提交标识和旧提交标识,从上述父代码库项目的所有子代码库项目中确定出至少一个待更新项目;第一同步模块,用于确定上述待更新项目的访问状态,并根据上述访问状态以及上述父代码库项目的编译文件对上述待更新项目进行同步,其中,上述访问状态包括开源状态和闭源状态;第二同步模块,用于根据上述待更新项目的新提交标识,对上述待更新项目的旧提交标识进行同步。
4、作为一种可选的示例,上述装置还包括:编译模块,用于在获取上述父代码库项目的每一个子代码库项目的新提交标识和旧提交标识之前,编译上述父代码库项目,得到上述编译文件。
5、作为一种可选的示例,上述获取模块包括:第一处理单元,用于将上述父代码库项目的每一个子代码库项目最为当前子代码库项目,对上述当前子代码库项目执行如下操作:从上述父代码库项目的第一git仓库中获取上述当前子代码库项目的新提交标识;从上述当前子代码库项目的第二git仓库中获取上述当前子代码库项目的旧提交标识。
6、作为一种可选的示例,上述确定模块包括:第二处理单元,用于将上述父代码库项目的每一个子代码库项目最为当前子代码库项目,对上述当前子代码库项目执行如下操作:对比上述当前子代码库项目的新提交标识和旧提交标识;在上述当前子代码库项目的新提交标识和旧提交标识不相同的情况下,确定上述当前子代码库项目为待更新项目;在上述当前子代码库项目的新提交标识和旧提交标识相同的情况下,确定上述当前子代码库项目为非待更新项目。
7、作为一种可选的示例,上述第一同步模块包括:第一同步单元,用于在上述待更新项目的访问状态为闭源状态的情况下,将上述编译文件复制到上述待更新项目中。
8、作为一种可选的示例,上述第一同步模块包括:确定单元,用于在上述待更新项目的访问状态为开源状态的情况下,根据上述待更新项目的新提交标识和旧提交标识,从上述编译文件中确定出上述待更新项目的差异文件;第一同步单元,用于将上述差异文件复制到上述待更新项目中。
9、作为一种可选的示例,上述第二同步模块包括:获取单元,用于从上述父代码库项目的第一git仓库中获取上述待更新项目的新提交标识;第二同步单元,用于将上述待更新项目的第二git仓库记录的上述待更新项目的旧提交标识修改为上述待更新项目的新提交标识。
10、第三方面,本申请提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被处理器运行时执行上述代码库项目的同步方法。
11、第四方面,本申请还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的代码库项目的同步方法。
12、在本申请实施例中,采用了在父代码库项目更新之后,获取上述父代码库项目的每一个子代码库项目的新提交标识和旧提交标识,其中,上述新提交标识记录在上述父代码库项目的第一git仓库中,上述旧提交标识记录在每一个上述子代码库项目的第二git仓库中;根据每一个上述子代码库项目的新提交标识和旧提交标识,从上述父代码库项目的所有子代码库项目中确定出至少一个待更新项目;确定上述待更新项目的访问状态,并根据上述访问状态以及上述父代码库项目的编译文件对上述待更新项目进行同步,其中,上述访问状态包括开源状态和闭源状态;根据上述待更新项目的新提交标识,对上述待更新项目的旧提交标识进行同步的方法,由于在上述方法中,通过自动获取和比较新旧提交标识,确定需要更新的子代码库项目,并根据子代码库项目的访问状态执行不同的同步更新操作,确保所有子代码库项目都能同步到最新版本,从而实现了自动执行代码同步操作,无需人工干预,提升同步工作效率的目的,进而解决了手动同步代码库项目的同步效率低、错误率高、安全性差的技术问题。
1.一种代码库项目的同步方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在获取所述父代码库项目的每一个子代码库项目的新提交标识和旧提交标识之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述获取所述父代码库项目的每一个子代码库项目的新提交标识和旧提交标识包括:
4.根据权利要求1所述的方法,其特征在于,所述根据每一个所述子代码库项目的新提交标识和旧提交标识,从所述父代码库项目的所有子代码库项目中确定出至少一个待更新项目包括:
5.根据权利要求1所述的方法,其特征在于,所述根据所述访问状态以及所述父代码库项目的编译文件对所述待更新项目进行同步包括:
6.根据权利要求1所述的方法,其特征在于,所述根据所述访问状态以及所述父代码库项目的编译文件对所述待更新项目进行同步包括:
7.根据权利要求1所述的方法,其特征在于,所述根据所述待更新项目的新提交标识,对所述待更新项目的旧提交标识进行同步包括:
8.一种代码库项目的同步装置,其特征在于,包括:
9.一种计算机可读的存储介质,所述计算机可读的存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行所述权利要求1至7任一项中所述的方法。
10.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。