CN114189512B - 基线代码的下载方法、装置、终端设备和存储介质 - Google Patents

基线代码的下载方法、装置、终端设备和存储介质 Download PDF

Info

Publication number
CN114189512B
CN114189512B CN202111528786.0A CN202111528786A CN114189512B CN 114189512 B CN114189512 B CN 114189512B CN 202111528786 A CN202111528786 A CN 202111528786A CN 114189512 B CN114189512 B CN 114189512B
Authority
CN
China
Prior art keywords
baseline
code
baseline information
downloading
data volume
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.)
Active
Application number
CN202111528786.0A
Other languages
English (en)
Other versions
CN114189512A (zh
Inventor
白双
罗国斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Opper Software Technology Co ltd
Original Assignee
Nanjing Opper Software Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Opper Software Technology Co ltd filed Critical Nanjing Opper Software Technology Co ltd
Priority to CN202111528786.0A priority Critical patent/CN114189512B/zh
Publication of CN114189512A publication Critical patent/CN114189512A/zh
Application granted granted Critical
Publication of CN114189512B publication Critical patent/CN114189512B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供一种基线代码的下载方法、装置、终端设备和存储介质,该基线代码的下载方法包括:终端设备获取构建参数,确定构建参数包含的基线信息集;读取XML配置表,XML配置表包括物理机器节点与基线信息的对应关系;在物理机器节点与基线信息的对应关系中存在与第一基线信息对应的第一物理机器节点的情况下,通过代码仓库管理工具针对第一物理机器节点执行基线代码的增量下载;第一基线信息为基线信息集中的任一个。本申请实施例可以提高代码仓库管理工具使用的稳定性。

Description

基线代码的下载方法、装置、终端设备和存储介质
技术领域
本申请涉及代码下载技术领域,具体涉及一种基线代码的下载方法、装置、终端设备和存储介质。
背景技术
基线代码,是某个项目所有源代码的集合。当前对应安卓代码的下载普遍使用的技术都是全量下载。但近年来,由于芯片厂商提供的整机的基线代码仓库的体量越来越大,当进行全量下载的时候,对代码仓库管理工具的下载请求执行率为全量100%,特别是高并发进行构建的时候,对代码仓库管理工具的冲击极大,可能导致代码仓库管理工具负荷过高而崩溃,极大影响代码仓库管理工具使用的稳定性。
发明内容
本申请实施例提供一种基线代码的下载方法、装置、终端设备和存储介质,可以降低代码仓库管理工具的负荷,提高代码仓库管理工具使用的稳定性。
本申请实施例的第一方面提供了一种基线代码的下载方法,包括:
获取构建参数,确定所述构建参数包含的基线信息集;
读取XML配置表,所述XML配置表包括物理机器节点与基线信息的对应关系;
在所述物理机器节点与基线信息的对应关系中存在与第一基线信息对应的第一物理机器节点的情况下,通过代码仓库管理工具针对所述第一物理机器节点执行基线代码的增量下载;所述第一基线信息为所述基线信息集中的任一个。
本申请实施例的第二方面提供了一种基线代码的下载方法,包括:
获取构建参数,确定所述构建参数包含的第一基线信息集;
对第一基线信息采用所述第一加密方式进行加密,得到所述第一基线信息对应的加密名称,所述第一基线信息是所述第一基线信息集中的任一个;
将所述第一基线信息对应的加密名称与云平台中的加密名称进行匹配,找到匹配成功的加密名称对应的数据卷;
基于所述匹配成功的加密名称对应的数据卷生成克隆数据卷;
通过虚拟机服务器挂载所述克隆数据卷;
通过代码仓库管理工具针对所述虚拟机服务器执行基线代码的增量下载。
本申请实施例的第三方面提供了一种基线代码的下载装置,包括:
第一获取单元,用于获取构建参数,确定所述构建参数包含的基线信息集;
读取单元,用于读取XML配置表,所述XML配置表包括物理机器节点与基线信息的对应关系;
第一下载单元,用于在所述物理机器节点与基线信息的对应关系中存在与第一基线信息对应的第一物理机器节点的情况下,通过代码仓库管理工具针对所述第一物理机器节点执行基线代码的增量下载;所述第一基线信息为所述基线信息集中的任一个。
本申请实施例的第四方面提供了一种基线代码的下载装置,包括:
第二获取单元,用于获取构建参数;
确定单元,用于确定所述构建参数包含的第一基线信息集;
加密单元,用于对第一基线信息采用所述第一加密方式进行加密,得到所述第一基线信息对应的加密名称,所述第一基线信息是所述第一基线信息集中的任一个;
匹配单元,用于将所述第一基线信息对应的加密名称与云平台中的加密名称进行匹配,找到匹配成功的加密名称对应的数据卷;
生成单元,用于基于所述匹配成功的加密名称对应的数据卷生成克隆数据卷;
挂载单元,用于通过虚拟机服务器挂载所述克隆数据卷;
第二下载单元,用于通过代码仓库管理工具针对所述虚拟机服务器执行基线代码的增量下载。
本申请实施例的第五方面提供了一种终端设备,包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如本申请实施例第一方面或第二方面中的步骤指令。
本申请实施例的第六方面提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面或第二方面中所描述的部分或全部步骤。
本申请实施例的第七方面提供了一种计算机程序产品,其中,上述计算机程序产品包括计算机程序,上述计算机程序可操作来使计算机执行如本申请实施例第一方面或第二方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
本申请实施例中,获取构建参数,确定所述构建参数包含的基线信息集;读取XML配置表,所述XML配置表包括物理机器节点与基线信息的对应关系;在所述物理机器节点与基线信息的对应关系中存在与第一基线信息对应的第一物理机器节点的情况下,通过代码仓库管理工具针对所述第一物理机器节点执行基线代码的增量下载;所述第一基线信息为所述基线信息集中的任一个。本申请实施例的基线代码的下载方法,在物理机器节点与基线信息的对应关系中存在与第一基线信息对应的第一物理机器节点的情况下,通过代码仓库管理工具针对第一物理机器节点执行基线代码的增量下载,只对选取的物理机器节点执行基线代码的增量下载,无需执行全量下载,对代码仓库管理工具的冲击较小,可以降低代码仓库管理工具的负荷,提高代码仓库管理工具使用的稳定性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种基线代码的下载方法的流程示意图;
图2是本申请实施例提供的一种物理机器节点与基线信息的对应关系的示意图;
图3是本申请实施例提供的一种筛选机器节点的流程示意图;
图4是本申请实施例提供的另一种基线代码的下载方法的流程示意图;
图5是本申请实施例提供的一种步骤(11)至步骤(13)对应的具体流程示意图;
图6为本申请实施例提供的一种基线代码的下载装置的结构示意图;
图7为本申请实施例提供的另一种基线代码的下载装置的结构示意图;
图8是本申请实施例提供的一种终端设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
本申请实施例所涉及到的终端设备可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(user equipment,UE),移动台(mobile station,MS),终端设备(terminaldevice)等等。为方便描述,上面提到的设备统称为终端设备。
当前对应安卓代码的下载普遍使用的技术都是全量下载,但近年来,由于芯片厂商提供的整机基线代码仓库的体量越来越大(基线代码,是某个项目所有源代码的集合),基线代码库的存储空间最大的可能已经超过了250GB,对代码全量下载的时间可能会超过35分钟,一次构建全流程的时间大概为150分钟,大概下载时间占到了总构建流程的24%(35/150*%100)的时间,所以当前全量下载的模式,会对持续集成构建的时长和效率产生很大负影响。一次构建任务包含的所有流程一般可以包含:环境准备,参数处理,代码下载,编译源码,打包交付件,产物归档。
由于基线代码仓库特别庞大,仓库数量大概大于1000,分支可以达到几十万条,当进行全量下载的时候,对代码仓库管理工具(比如gerrit)的下载请求执行率为全量100%,特别是高并发进行构建的时候,对gerrit的冲击极大,可能导致gerrit负荷过高而崩溃,极大影响代码仓库管理工具使用的稳定性。
为了解决上述问题,本申请实施例提供了一种基线代码的下载方法、装置、终端设备和存储介质,可以降低代码仓库管理工具的负荷,提高代码仓库管理工具使用的稳定性。
请参阅图1,图1是本申请实施例提供的一种基线代码的下载方法的流程示意图。如图1所示,该基线代码的下载方法可以包括如下步骤。
101,终端设备获取构建参数,确定构建参数包含的基线信息集。
本申请实施例中,构建参数可以是构建开始时传入构建的参数,进行构建参数过滤。比如,构建参数可以通过用户在配置平台上录入后传入到终端设备的构建系统的。构建参数可以包括至少一个基线信息组成的基线信息集。基线信息可以是用户录入的管理某个项目源代码的信息集合,它是一个代表全代码的配置索引。基线信息集中的每个基线信息可以包含用户需要下载的项目源代码的信息集合。
102,终端设备读取XML配置表,XML配置表包括物理机器节点与基线信息的对应关系。
本申请实施例中,可扩展标记语言(extensible markup language,XML)配置表,可以存放物理机器节点信息和存放对应的基线信息,XML配置表里面配置的各个物理机器节点都可以存放好了与对应的基线信息对应的基线代码,XML配置表参考样例可以参见图2。图2是本申请实施例提供的一种物理机器节点与基线信息的对应关系的示意图。如图2所示,定义的物理机器节点的名称为“node1”,该节点“node1”对应的基线信息可以包括:<code base=”ssh://gerrit.scm.adc.com:29418/oplus/prjxml”branch=”r/mtk_5g”xmlname=”r_feature_cupid_bringup.xml”platform=”MTK_5G_11.0”baseline=”na”/>。
基线代码可以是通过基线信息的配置索引,使用谷歌提供的下载工具下载下来的源代码,这是最终代码的实体。
物理机器节点代表的是某个服务器的标签,实际可以对应的一台物理服务器。基线代码是指放在物理服务器上的项目源代码。
103,在物理机器节点与基线信息的对应关系中存在与第一基线信息对应的第一物理机器节点的情况下,终端设备通过代码仓库管理工具针对第一物理机器节点执行基线代码的增量下载;第一基线信息为基线信息集中的任一个。
本申请实施例中,可以从XML配置表包括的物理机器节点与基线信息的对应关系中筛选出与基线信息集中的基线信息对应的物理机器节点集合,该物理机器节点集合可以包括第一物理机器节点。
请参阅图3,图3是本申请实施例提供的一种筛选机器节点的流程示意图。如图3所示,传入的构建参数包括的基线信息集可以包括:base_info_A、base_info_E、base_info_H、base_info_J和base_info_M。XML配置表包括的物理机器节点与基线信息的对应关系可以包括:物理机器节点node1对应的基线信息包括:base_info_A、base_info_B和base_info_C;物理机器节点node2对应的基线信息包括:base_info_D、base_info_E和base_info_F;物理机器节点node3对应的基线信息包括:base_info_G、base_info_H和base_info_I。物理机器节点node4对应的基线信息包括:base_info_J、base_info_K和base_info_L。物理机器节点node5对应的基线信息包括:base_info_M、base_info_N和base_info_O。与base_info_A对应的物理机器节点为node1,与base_info_E对应的物理机器节点为node2,与base_info_H对应的物理机器节点为node3,与base_info_J对应的物理机器节点为node4,与base_info_M对应的物理机器节点为node5。因此,筛选出来匹配的物理机器节点包括:node1、node2、node3、node4和node5。终端设备通过代码仓库管理工具针对物理机器节点node1、node2、node3、node4和node5执行基线代码的增量下载。
具体的,筛选出来的节点名可以返回给构建的jenkins作为slave节点使用。其中,jenkins是Java开发的一种持续集成工具,作用是:1、持续的软件版本发布/测试项目;2、监控外部调用执行的工作。slave节点是jenkkins服务下的一个组件,它代表就是配置在jenkisn服务下可供使用的所有服务器。
本申请实施例中,终端设备通过代码仓库管理工具针对第一物理机器节点执行基线代码的增量下载,具体可以包括:终端设备通过gerrit的repo工具执行增量下载。repo工具可以判断该第一基线信息对应的全量基线代码中哪些代码是需要进行增量下载的(比如,可以对新增的代码、更新的代码进行下载)。比如,该第一基线信息对应的全量基线代码包括:基线代码1、基线代码2、基线代码3、基线代码4和基线代码5,均存储在第一物理机器节点中。如果终端设备中已有的代码包括基线代码1、基线代码2’、基线代码3和基线代码4,repo工具可以判断出全量基线代码中的基线代码1、基线代码3和基线代码4与终端设备中已有的代码完全相同,判断出全量基线代码中的基线代码2是更新过后的代码,基线代码5是新增的代码。则判断出基线代码2和基线代码5是需要进行增量下载的代码。只需要对基线代码2和基线代码5进行下载,无需对该第一基线信息对应的全量基线代码进行下载,可以节省下载时间,减少对代码仓库管理工具的冲击,可以降低代码仓库管理工具的负荷,提高代码仓库管理工具使用的稳定性。
本申请实施例中,在执行步骤103的终端设备通过代码仓库管理工具针对第一物理机器节点执行基线代码的增量下载的步骤之前,还可以执行如下步骤:
对所述XML配置表包括的所有物理机器节点上固定的全量基线代码进行下载。
本申请实施例中,可以进行机器环境全量代码准备,机器环境全量代码准备指的是提前对每个物理机器节点上固定的全量基线代码下载完成,在步骤103中做好节点选取成功后,可以直接执行增量下载的环境准备。执行增量下载的环境准备,指的是在物理服务器上需要先将全量的基线代码下载好,作为增量二次,三次……N次使用增量下载的准备工作。
本申请实施例中,增量下载与全量下载相对应。增量下载是有判断的下载,只对基线信息对应的新增的代码、有更新的代码、有更改的代码进行下载。全量下载是没有判断的下载,对基线信息对应的全部基线代码进行下载。举例来说,如果每一个基线对应的全量基线代码有400GB,编译后总共会占用的空间可能在1TB左右,全量基线代码的下载量巨大,下载时间较长。采用增量下载的方式可以显著的节省下载时间,减少对代码仓库管理工具的冲击,可以降低代码仓库管理工具的负荷,提高代码仓库管理工具使用的稳定性。
可选的,图1所示的方法还可以包括如下步骤:
在所述物理机器节点与基线信息的对应关系中不存在与所述第一基线信息对应的第一物理机器节点的情况下,终端设备执行基线代码的全量下载。
本申请实施例中,以下场景可能引起选取物理机器节点失败:1.当增量环境的物理机器不足时;2.选取物理机器的代码逻辑出bug。
当增量环境的物理机器不足时,则可能会出现在所述物理机器节点与基线信息的对应关系中不存在与所述第一基线信息对应的第一物理机器节点的情况下。
本申请实施例基于物理服务器+静态XML配置的方式对整机基线代码增量下载实现,可以具有如下有益效果:
1)经过实际测试以及上线后的数据结果,可以将代码下载时间从平均35分钟下降到平均5分钟左右,下载时间在构建流程的时间总占比从24%下降到4.1%,可以结余单台成本10万元的服务器大概25台左右。
2)经过实际测试以及上线后的数据结果,可以将对代码仓库管理工具(gerrit)的下载请求执行率从全量的100%下降到5%以内,代码仓库管理工具的不会再因为下载负荷过高而出现性能瓶颈,极大提高用户的满意度。
3)出现异常情况,可以直接到指定的服务器排查基线代码目录,定位问题方便准确。物理服务器和基线代码对应关系信息维护在图2中,可以通过图2的对应关系很快的找到哪个物理服务器上的哪个基线代码增量下载的时候出现问题。
本申请实施例的基线代码的下载方法,在物理机器节点与基线信息的对应关系中存在与第一基线信息对应的第一物理机器节点的情况下,通过代码仓库管理工具针对第一物理机器节点执行基线代码的增量下载,只对选取的物理机器节点执行基线代码的增量下载,无需执行全量下载,对代码仓库管理工具的冲击较小,可以降低代码仓库管理工具的负荷,提高代码仓库管理工具使用的稳定性。
请参阅图4,图4是本申请实施例提供的另一种基线代码的下载方法的流程示意图。如图4所示,该方法还可以包括如下步骤:
401,终端设备获取构建参数,确定构建参数包含的第一基线信息集。
本申请实施例的基线代码的下载方法可以基于云原生的KVM+PVC方式对整机基线代码增量下载实现。基于内核的虚拟机(kernel-based virtual machine,KVM),KVM可以是虚拟化资源池里面执行任务的节点。持久卷声明(persistent volume claim,PVC),PVC可以是分布式存储系统下的逻辑卷单元。分布式存储系统可以是Ceph存储系统,Ceph是一个可靠、自动重均衡、自动恢复的分布式存储系统,Ceph在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡,不存在传统的单点故障的问题,可以水平扩展。
本申请实施例中,构建参数可以是构建开始时传入构建的参数,进行构建参数过滤。比如,构建参数可以通过用户在配置平台上录入后传入到终端设备的构建系统的。构建参数可以包括至少一个基线信息组成的基线信息集(第一基线信息集)。第一基线信息可以是用户录入的管理某个项目源代码的信息集合,它是一个代表全代码的配置索引。第一基线信息集中的每个基线信息可以包含用户需要下载的项目源代码的信息集合。第一基线信息集可以包括至少一个基线信息。第一基线信息集包括的基线信息对应的基线代码是用户需要下载的基线代码。
终端设备获取构建参数后,可以从构建参数中提取用户配置后传给构建系统的基线信息。基线信息可以是prjxml信息。
第一基线信息集可以包括用户配置的基线信息组成的集合。第一基线信息集中的每个基线信息可以对应不同的基线代码。
402,终端设备对第一基线信息采用第一加密方式进行加密,得到第一基线信息对应的加密名称,第一基线信息是第一基线信息集中的任一个。
本申请实施例中,第一加密方式可以是md5加密的方式,md5可以是md5消息摘要算法,md5消息摘要算法是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
终端设备可以对第一信息集中的每个基线信息都采用步骤402的方式进行加密,每个基线信息都可以采用同样的加密方式进行加密。每个基线信息进行加密后,都可以得到该基线信息对应的加密名称。
403,终端设备将第一基线信息对应的加密名称与云平台中的加密名称进行匹配,找到匹配成功的加密名称对应的数据卷。
本申请实施例中,云平台中的加密名称,可以预先保存在云平台,具体可以是通过上述第一加密方式对查询到的基线信息进行加密后得到的加密名称。
云平台可以是星云平台,星云平台中的加密名称可以是在步骤403之前保存在星云平台中的。
云平台可以对查询到的基线信息采用步骤402的第一加密方式进行加密,得到该基线信息对应的加密名称。针对查询到的基线信息,可以针对查询到的基线信息创建与该基线信息对应的空白数据卷,并在该空白数据卷中填入该基线信息对应的全量基线代码,得到该基线信息对应的加密名称对应的数据卷。该基线信息对应的全量基线代码,可以是针对该基线信息对应的全部基线代码。
可选的,在执行步骤401之前,还可以执行如下步骤:
(11)终端设备查询第二基线信息集,创建第二基线信息对应的第一空白数据卷;所述第二基线信息是所述第二基线信息集中的任一个;
(12)终端设备将所述第二基线信息对应的全量基线代码写入所述第一空白数据卷,得到第一数据卷;
(13)终端设备对第二基线信息采用第一加密方式进行加密后,得到所述第二基线信息对应的加密名称,将所述第二基线信息对应的加密名称保存在所述云平台。
本申请实施例中,终端设备可以通过代码仓库管理工具获取构建参数。比如,代码仓库管理工具以gerrit为例,终端设备可以通过查询gerrit接口的形式来查询出第二基线信息集,第二基线信息集包括通过代码仓库管理工具查询到的所有基线信息的集合。基线信息可以包括基线的prjxml信息,prjxml信息可以是基线代码的索引,其作用是记录基线代码的信息。
第二基线信息集可以包括查询到的所有基线信息组成的集合。每个基线信息可以对应不同的基线代码。第二基线信息集可以包括至少一个基线信息集。
数据卷可以是持久卷声明(persistent volume claim,PVC),PVC可以是分布式存储系统下的逻辑卷单元。空白数据卷,是空的数据卷,该数据集中没有存入数据。将第二基线信息对应的全量基线代码写入第二基线信息对应的第一空白数据卷,得到第一数据卷。云平台可以保存该第一数据卷。云平台可以保存第二基线信息对应的加密名称以及第一数据卷。第二基线信息对应的加密名称用于后续做加密名称匹配,第一数据卷用于后续做克隆数据卷。第二基线信息集可以包括很多条基线信息,每条基线信息对应的全量基线代码的数据量巨大。由于单个物理服务器而言只能指定固定的基线代码,单个物理服务器无法通配较多的基线信息和基线代码,对服务器资源的复用率较低,耗费服务器资源较大。通过云平台存储,与通过物理服务器存储相比,可以降低物理服务器资源的需求。
上述步骤(11)至步骤(13)可以由单独的jenkins任务来完成。请参阅图5,图5是本申请实施例提供的一种步骤(11)至步骤(13)对应的具体流程示意图。第一步是:gerrit接口查询;第二步是:查询出所有基线的prjxml信息;如图5所示,查询到的第二基线信息集包括:prjxml-8250S、prjxml-8350S、prjxml-8450S、…prjxml-xxxxx;第三步是:每个基线的prjxml信息都创建一个独立的空白的PVC;如图5所示,prjxml-8250S对应创建的空白pvc:create-kvm-pvc-8250S、prjxml-8350S对应创建的空白pvc:create-kvm-pvc-8350S、prjxml-8450S对应创建的空白pvc:create-kvm-pvc-8450S、prjxml-xxxxx对应创建的空白pvc:create-kvm-pvc-xxxxx;第四步是:在创建出来的每个空白的PVC写入对应的全量代码;第五步:基线信息加密;第六步:PVC保存在云平台的后台。
404,终端设备基于匹配成功的加密名称对应的数据卷生成克隆数据卷。
本申请实施例中,通过克隆数据卷(克隆PVC),不会在对克隆数据卷进行操作时对原有数据卷造成影响。任何对于数据卷的挂载都需要先进行克隆,可以同时满足多个虚拟服务器对该数据卷的挂载需求。第二基线信息集可以包括查询到的所有基线信息组成的集合,对于需要的数据卷进行克隆,无需对所有基线信息对应的数据卷都进行克隆,从而降低数据卷克隆的克隆数据量。
405,终端设备通过虚拟机服务器挂载克隆数据卷。
本申请实施例中,虚拟机服务器(比如,KVM)挂载克隆数据卷可以把准备好的全量环境在服务器上映射起来后为增量下载提供环境主备,为增量下载提供全量环境。增量下载的基础需要有一份历史的全量代码。
本申请实施例通过虚拟机服务器挂载克隆数据卷,由于每一个克隆数据卷可以与任何的虚拟机服务器进行挂载,对生成出来的克隆数据卷可以进行任何一个静态虚拟机服务器挂载使用,具有极高的编译机器复用率,克服了一个物理服务器只能放有限的代码份数的缺陷。
406,终端设备通过代码仓库管理工具针对虚拟机服务器执行基线代码的增量下载。
本申请实施例中,终端设备通过代码仓库管理工具针对虚拟机服务器执行基线代码的增量下载,具体可以包括:终端设备通过gerrit的repo工具执行增量下载。repo工具可以判断该虚拟机服务器挂载的克隆数据卷包含的全量基线代码中哪些代码是需要进行增量下载的(比如,可以对新增的代码、更新的代码进行下载)。比如,该虚拟机服务器挂载的克隆数据卷包含的全量基线代码包括:基线代码1、基线代码2、基线代码3、基线代码4和基线代码5。如果终端设备中已有的代码包括基线代码1、基线代码2’、基线代码3和基线代码4,repo工具可以判断出上述全量基线代码中的基线代码1、基线代码3和基线代码4与终端设备中已有的代码完全相同,判断出全量基线代码中的基线代码2是更新过后的代码,基线代码5是新增的代码。则判断出基线代码2和基线代码5是需要进行增量下载的代码。只需要对基线代码2和基线代码5进行下载,无需对该虚拟机服务器挂载的克隆数据卷包含的全量基线代码进行下载,可以节省下载时间,减少对代码仓库管理工具的冲击,可以降低代码仓库管理工具的负荷,提高代码仓库管理工具使用的稳定性。
本申请实施例可以对虚拟机服务器挂载的克隆数据卷包含的全量基线代码进行下载,可以节省下载时间,减少对代码仓库管理工具的冲击,可以降低代码仓库管理工具的负荷,提高代码仓库管理工具使用的稳定性。
可选的,在执行步骤406之后,还可以执行如下步骤:
在针对所述虚拟机服务器执行基线代码的增量下载的任务结束之后,终端设备删除所述虚拟服务器挂载的所述克隆数据卷。
本申请实施例可以通过kubernetes(kubernetes是K8s编排工具,可以提供对底层KVM调度和控制作用)调度虚拟机服务器挂载克隆数据卷。当次任务执行完成后需要删除本次产生的所有数据卷,释放克隆数据卷暂用的分布式存储系统(比如,Ceph存储系统)的存储空间,下次任务的时候再重新生成克隆数据卷。
本申请实施例基于云原生的KVM+PVC方式对整机基线代码增量下载实现,可以具有如下有益效果:
1)经过实际测试以及上线后的数据结果,可以将代码下载时间从平均35分钟下降到平均5分钟左右,下载时间在构建流程的时间总占比从24%下降到4.1%,可以结余单台成本10万元的服务器大概25台左右。
2)经过实际测试以及上线后的数据结果,可以将对代码仓库管理工具(gerrit)的下载请求执行率从全量的100%下降到5%以内,代码仓库管理工具的不会再因为下载负荷过高而出现性能瓶颈,极大提高用户的满意度。
3)经过实际测试可知,对静态的KVM机器的复用率可以达到100%,机器成本降低。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,终端设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对终端设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
请参阅图6,图6为本申请实施例提供的一种基线代码的下载装置的结构示意图,该基线代码的下载装置600应用于终端设备,该基线代码的下载装置600可以包括第一获取单元601、读取单元602和第一下载单元603,其中:
第一获取单元601,用于获取构建参数,确定所述构建参数包含的基线信息集;
读取单元602,用于读取XML配置表,所述XML配置表包括物理机器节点与基线信息的对应关系;
第一下载单元603,用于在所述物理机器节点与基线信息的对应关系中存在与第一基线信息对应的第一物理机器节点的情况下,通过代码仓库管理工具针对所述第一物理机器节点执行基线代码的增量下载;所述第一基线信息为所述基线信息集中的任一个。
可选的,所述第一下载单元603,还用于在所述物理机器节点与基线信息的对应关系中不存在与所述第一基线信息对应的第一物理机器节点的情况下,执行基线代码的全量下载。
可选的,所述第一下载单元603,还用于所述读取单元602读取XML配置表之后,对所述XML配置表包括的所有物理机器节点上固定的基线代码进行下载。
其中,本申请实施例中的第一获取单元601、读取单元602和第一下载单元603可以是终端设备中的处理器。
本申请实施例中,在物理机器节点与基线信息的对应关系中存在与第一基线信息对应的第一物理机器节点的情况下,通过代码仓库管理工具针对第一物理机器节点执行基线代码的增量下载,只对选取的物理机器节点执行基线代码的增量下载,无需执行全量下载,对代码仓库管理工具的冲击较小,可以降低代码仓库管理工具的负荷,提高代码仓库管理工具使用的稳定性。
请参阅图7,图7为本申请实施例提供的另一种基线代码的下载装置的结构示意图,该基线代码的下载装置700应用于终端设备,该基线代码的下载装置700可以包括第二获取单元701、确定单元702、加密单元703、匹配单元704、生成单元705、挂载单元706和第二下载单元707,其中:
第二获取单元701,用于获取构建参数;
确定单元702,用于确定所述构建参数包含的第一基线信息集;
加密单元703,用于对第一基线信息采用所述第一加密方式进行加密,得到所述第一基线信息对应的加密名称,所述第一基线信息是所述第一基线信息集中的任一个;
匹配单元704,用于将所述第一基线信息对应的加密名称与云平台中的加密名称进行匹配,找到匹配成功的加密名称对应的数据卷;
生成单元705,用于基于所述匹配成功的加密名称对应的数据卷生成克隆数据卷;
挂载单元706,用于通过虚拟机服务器挂载所述克隆数据卷;
第二下载单元707,用于通过代码仓库管理工具针对所述虚拟机服务器执行基线代码的增量下载。
可选的,该基线代码的下载装置700还可以包括查询单元708、创建单元709、写入单元710和保存单元711。
所述查询单元708,用于在第二获取单元701获取构建参数之前,查询第二基线信息集;
所述创建单元709,用于创建第二基线信息对应的第一空白数据卷;所述第二基线信息是所述第二基线信息集中的任一个;
所述写入单元710,用于将所述第二基线信息对应的全量基线代码写入所述第一空白数据卷,得到第一数据卷;
所述加密单元703,还用于对第二基线信息采用第一加密方式进行加密后,得到所述第二基线信息对应的加密名称;
所述保存单元711,用于将所述第二基线信息对应的加密名称保存在所述云平台。
可选的,该基线代码的下载装置700还可以包括删除单元712;
所述删除单元,用于在所述第二下载单元707通过代码仓库管理工具针对所述虚拟机服务器执行基线代码的增量下载之后,在针对所述虚拟机服务器执行基线代码的增量下载的任务结束之后,删除所述虚拟服务器挂载的所述克隆数据卷。
其中,本申请实施例中的第二获取单元701、确定单元702、加密单元703、匹配单元704、生成单元705、挂载单元706、第二下载单元707、查询单元708、创建单元709、写入单元710、保存单元711和删除单元712可以是终端设备中的处理器。
本申请实施例中,可以对虚拟机服务器挂载的克隆数据卷包含的全量基线代码进行下载,可以节省下载时间,减少对代码仓库管理工具的冲击,可以降低代码仓库管理工具的负荷,提高代码仓库管理工具使用的稳定性。
请参阅图8,图8是本申请实施例提供的一种终端设备的结构示意图,如图8所示,该终端设备800包括处理器801和存储器802,处理器801、存储器802可以通过通信总线803相互连接。通信总线803可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。通信总线803可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。存储器802用于存储计算机程序,计算机程序包括程序指令,处理器801被配置用于调用程序指令,上述程序包括用于执行图1~4所示的方法中的部分或全部步骤。
处理器801可以是通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制以上方案程序执行的集成电路。
存储器802可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
此外,该终端设备800还可以包括通信接口、天线等通用部件,在此不再详述。
本申请实施例中,在物理机器节点与基线信息的对应关系中存在与第一基线信息对应的第一物理机器节点的情况下,通过代码仓库管理工具针对第一物理机器节点执行基线代码的增量下载,只对选取的物理机器节点执行基线代码的增量下载,无需执行全量下载,对代码仓库管理工具的冲击较小,可以降低代码仓库管理工具的负荷,提高代码仓库管理工具使用的稳定性。
本申请实施例还提供一种计算机可读存储介质,其中,该计算机可读存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种基线代码的下载方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在申请明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器、随机存取器、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (6)

1.一种基线代码的下载方法,其特征在于,包括:
获取构建参数,确定所述构建参数包含的第一基线信息集;
对第一基线信息采用第一加密方式进行加密,得到所述第一基线信息对应的加密名称,所述第一基线信息是所述第一基线信息集中的任一个;
将所述第一基线信息对应的加密名称与云平台中的加密名称进行匹配,找到匹配成功的加密名称对应的数据卷;
基于所述匹配成功的加密名称对应的数据卷生成克隆数据卷;
通过虚拟机服务器挂载所述克隆数据卷;
通过代码仓库管理工具针对所述虚拟机服务器执行基线代码的增量下载。
2.根据权利要求1所述的方法,其特征在于,所述获取构建参数之前,所述方法还包括:
查询第二基线信息集,创建第二基线信息对应的第一空白数据卷;所述第二基线信息是所述第二基线信息集中的任一个;
将所述第二基线信息对应的全量基线代码写入所述第一空白数据卷,得到第一数据卷;
对第二基线信息采用第一加密方式进行加密后,得到所述第二基线信息对应的加密名称,将所述第二基线信息对应的加密名称保存在所述云平台。
3.根据权利要求1或2所述的方法,其特征在于,所述通过代码仓库管理工具针对所述虚拟机服务器执行基线代码的增量下载之后,所述方法还包括:
在针对所述虚拟机服务器执行基线代码的增量下载的任务结束之后,删除所述虚拟机服务器挂载的所述克隆数据卷。
4.一种基线代码的下载装置,其特征在于,包括:
第二获取单元,用于获取构建参数;
确定单元,用于确定所述构建参数包含的第一基线信息集;
加密单元,用于对第一基线信息采用第一加密方式进行加密,得到所述第一基线信息对应的加密名称,所述第一基线信息是所述第一基线信息集中的任一个;
匹配单元,用于将所述第一基线信息对应的加密名称与云平台中的加密名称进行匹配,找到匹配成功的加密名称对应的数据卷;
生成单元,用于基于所述匹配成功的加密名称对应的数据卷生成克隆数据卷;
挂载单元,用于通过虚拟机服务器挂载所述克隆数据卷;
第二下载单元,用于通过代码仓库管理工具针对所述虚拟机服务器执行基线代码的增量下载。
5.一种终端设备,其特征在于,包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1~3任一项所述的方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1~3任一项所述的方法。
CN202111528786.0A 2021-12-14 2021-12-14 基线代码的下载方法、装置、终端设备和存储介质 Active CN114189512B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111528786.0A CN114189512B (zh) 2021-12-14 2021-12-14 基线代码的下载方法、装置、终端设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111528786.0A CN114189512B (zh) 2021-12-14 2021-12-14 基线代码的下载方法、装置、终端设备和存储介质

Publications (2)

Publication Number Publication Date
CN114189512A CN114189512A (zh) 2022-03-15
CN114189512B true CN114189512B (zh) 2023-07-14

Family

ID=80605026

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111528786.0A Active CN114189512B (zh) 2021-12-14 2021-12-14 基线代码的下载方法、装置、终端设备和存储介质

Country Status (1)

Country Link
CN (1) CN114189512B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006034258A1 (en) * 2004-09-20 2006-03-30 Koders, Inc. Source code search engine
CN107797819A (zh) * 2017-06-12 2018-03-13 平安普惠企业管理有限公司 增量包生成方法、计算机可读存储介质及服务器
CN111857881A (zh) * 2020-07-21 2020-10-30 深圳创维-Rgb电子有限公司 基于repo的manifest仓库加载方法、装置及存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2666509C (en) * 2006-10-16 2017-05-09 Hospira, Inc. System and method for comparing and utilizing activity information and configuration information from multiple medical device management systems
CN100472447C (zh) * 2007-04-10 2009-03-25 北京中星微电子有限公司 一种实现软件更新的方法及装置
US8245217B2 (en) * 2007-10-12 2012-08-14 Microsoft Corporation Management of software and operating system updates required for the process of creating a virtual machine facsimile of an existing physical or virtual machine
US8225109B1 (en) * 2008-04-30 2012-07-17 Netapp, Inc. Method and apparatus for generating a compressed and encrypted baseline backup
CN102576294B (zh) * 2009-10-07 2014-08-20 国际商业机器公司 含有多个存储装置的存储系统和方法
US8762980B1 (en) * 2010-09-09 2014-06-24 Symantec Corporation Rolling incremental updates
US20150222939A1 (en) * 2010-10-28 2015-08-06 Avvasi Inc. System for monitoring a video network and methods for use therewith
US8930936B2 (en) * 2012-11-06 2015-01-06 International Business Machines Corporation Loading remote binaries onto a write-protected device
US9038086B2 (en) * 2012-11-15 2015-05-19 Bank Of America Corporation End to end modular information technology system
US9684539B1 (en) * 2014-12-17 2017-06-20 VCE IP Holding Company LLC Methods, systems, and computer readable mediums for logically remediating infrastructure resource components
US9800819B2 (en) * 2016-02-19 2017-10-24 Sony Corporation Methodologies and apparatus for reducing delays when receiving, processing, or switching content
US10146590B1 (en) * 2016-03-31 2018-12-04 EMC IP Holding Company LLC Automatically deploying a virtualized object store in an open stack tenant name space
CN108304150B (zh) * 2018-01-31 2021-05-25 京东方科技集团股份有限公司 一种虚拟现实设备和虚拟现实设备的配置方法
US20200004389A1 (en) * 2018-07-02 2020-01-02 Cerner Innovation, Inc. Hierarchy editor tool for source code
US10884867B2 (en) * 2018-11-27 2021-01-05 Sap Se Systems and methods providing incremental backup for persistent services
CN111045864A (zh) * 2019-11-26 2020-04-21 上海英方软件股份有限公司 一种连续数据保护的快速异地恢复方法及系统
CN111552476A (zh) * 2020-04-24 2020-08-18 烽火通信科技股份有限公司 一种代码静态检查的方法与设备
CN112181386B (zh) * 2020-08-31 2023-12-01 深圳市优必选科技股份有限公司 一种基于软件持续集成的代码构建方法、装置及终端
CN112084008B (zh) * 2020-09-10 2023-02-17 浪潮云信息技术股份公司 一种基于容器技术快速部署云管系统的方法
CN112416327A (zh) * 2020-11-23 2021-02-26 平安普惠企业管理有限公司 项目构建方法、装置、计算机设备及存储介质
CN113360394A (zh) * 2021-06-25 2021-09-07 汇付天下有限公司 代码测试覆盖率统计方法及装置
CN113553089A (zh) * 2021-07-13 2021-10-26 上海轻轻信息科技有限公司 一种代码增量发布更新方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006034258A1 (en) * 2004-09-20 2006-03-30 Koders, Inc. Source code search engine
CN107797819A (zh) * 2017-06-12 2018-03-13 平安普惠企业管理有限公司 增量包生成方法、计算机可读存储介质及服务器
CN111857881A (zh) * 2020-07-21 2020-10-30 深圳创维-Rgb电子有限公司 基于repo的manifest仓库加载方法、装置及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种基于UML关系的Java代码库构造方法;姜人和;郑晓梅;朱晓倩;潘敏学;张天;;计算机科学(第11期);全文 *
基于持续集成的C/C++软件覆盖率测试;姜文;刘立康;;计算机技术与发展(第03期);全文 *

Also Published As

Publication number Publication date
CN114189512A (zh) 2022-03-15

Similar Documents

Publication Publication Date Title
JP6236533B2 (ja) 差分アップデートパッケージの作成方法及び装置、システム差分アップデート方法及び装置
US9996333B2 (en) Apparatus and method for automating the installation and configuration of infrastructure
EP2989543B1 (en) Method and device for updating client
CN106610839B (zh) 发布升级包的方法、轻量升级方法、装置及系统
CN107911249B (zh) 一种网络设备的命令行发送方法、装置和设备
CN106663023B (zh) 对云应用中的虚拟机进行分组
CN112099800B (zh) 代码数据的处理方法、装置和服务器
CN106293842B (zh) 一种软件安装方法及装置
CN108563440A (zh) 列表控制器代码自动添加方法、装置及可读存储介质
CN112579399B (zh) 云服务测试方法、装置、电子设备及计算机存储介质
CN111651219A (zh) 一种多模块项目配置文件管理的方法及设备
CN108234551B (zh) 一种数据处理方法及装置
CN111651352A (zh) 一种仓库代码的合并方法及装置
CN104252413A (zh) 一种自动化脚本生成方法、装置及系统
CN112131177A (zh) 数据迁移方法及装置、存储介质、电子设备
CN110096295B (zh) 基于ReactNative的多模块移动应用的热更新方法及系统
CN110807000B (zh) 一种文件修复方法、装置、电子设备和存储介质
CN114189512B (zh) 基线代码的下载方法、装置、终端设备和存储介质
CN112202909A (zh) 一种计算机存储系统在线升级方法及系统
CN115357198B (zh) 存储卷的挂载方法及装置、存储介质及电子设备
CN101729286A (zh) 修改代理端管理信息库中变量的方法、设备及系统
CN115951845A (zh) 一种磁盘管理方法、装置、设备及存储介质
CN106909472B (zh) 一种分布式文件系统的输入/输出负载调整方法及装置
CN118056183A (zh) 优化即时编译过程
CN111431951B (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
GR01 Patent grant
GR01 Patent grant