CN114253595A - 代码仓库管理方法、装置、计算机设备及存储介质 - Google Patents

代码仓库管理方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN114253595A
CN114253595A CN202010999270.3A CN202010999270A CN114253595A CN 114253595 A CN114253595 A CN 114253595A CN 202010999270 A CN202010999270 A CN 202010999270A CN 114253595 A CN114253595 A CN 114253595A
Authority
CN
China
Prior art keywords
environment
code
target
content
version
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
Application number
CN202010999270.3A
Other languages
English (en)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010999270.3A priority Critical patent/CN114253595A/zh
Publication of CN114253595A publication Critical patent/CN114253595A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了代码仓库管理方法、装置、计算机设备及存储介质,该方法包括:获取第一版本的目标代码,确定该第一版本的目标代码对应的多个环境代码分支,该多个环境代码分支与运行该目标代码的多个运行环境相对应;确定该多个环境代码分支之间的相同内容以及每个环境代码分支中的差异内容;根据每个环境代码分支的差异内容生成与所述环境代码分支的运行环境相匹配的环境配置文件,得到对应所述多个运行环境的多个环境配置文件;将所述多个环境代码分支之间的相同内容作为基础内容,根据所述基础内容和所述多个环境配置文件生成与所述第一版本的目标代码相对应的版本代码分支。本发明提升了代码仓库对于各个版本代码的管理效率。

Description

代码仓库管理方法、装置、计算机设备及存储介质
技术领域
本发明涉及计算机技术领域,特别涉及一种代码仓库管理方法、装置、计算机设备及存储介质。
背景技术
代码仓库是软件如应用程序代码的存储机构,常用于代码版本管理和代码变动跟踪。代码仓库,如git仓库,提供有分支(branch)功能,通过利用代码分支可以将工作从开发主线上分离开来,以免影响开发主线。
在软件开发的不同阶段中需要将软件部署在不同的运行环境中运行,该运行环境例如可以包括开发环境、测试环境、预发布环境和正式环境,代码仓库需要对软件在多个运行环境下的各个软件版本进行存储。相关技术中,在多版本多运行环境的场景下,代码仓库针对每个版本需要存储与运行环境数量N相当的N条代码分支,而且软件版本的增加使得代码分支的数量呈现针对运行环境数的线性倍数的增加,导致代码仓库的管理复杂,降低了代码仓库对于各个版本代码的管理效率。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种代码仓库管理方法、装置、计算机设备及存储介质。所述技术方案如下:
一方面,提供了一种代码仓库管理方法,所述方法包括:
获取第一版本的目标代码,确定所述第一版本的目标代码对应的多个环境代码分支;所述第一版本是所述目标代码在代码仓库中的任一版本,所述多个环境代码分支与运行所述目标代码的多个运行环境相对应;
确定所述多个环境代码分支之间的相同内容以及每个环境代码分支中的差异内容,所述差异内容是所述环境代码分支中不同于其他环境代码分支的内容;
根据每个环境代码分支的差异内容,生成与所述环境代码分支的运行环境相匹配的环境配置文件,得到对应所述多个运行环境的多个环境配置文件;
将所述多个环境代码分支之间的相同内容作为基础内容,根据所述基础内容和所述多个环境配置文件生成与所述第一版本的目标代码相对应的版本代码分支。
另一方面,提供了一种代码仓库管理装置,所述装置包括:
环境分支确定模块,用于获取第一版本的目标代码,确定所述第一版本的目标代码对应的多个环境代码分支;所述第一版本是所述目标代码在代码仓库中的任一版本,所述多个环境代码分支与运行所述目标代码的多个运行环境相对应;
内容确定模块,用于确定所述多个环境代码分支之间的相同内容以及每个环境代码分支中的差异内容,所述差异内容是所述环境代码分支中不同于其他环境代码分支的内容;
配置生成模块,用于根据每个环境代码分支的差异内容,生成与所述环境代码分支的运行环境相匹配的环境配置文件,得到对应所述多个运行环境的多个环境配置文件;
版本分支生成模块,用于将所述多个环境代码分支之间的相同内容作为基础内容,根据所述基础内容和所述多个环境配置文件生成与所述第一版本的目标代码相对应的版本代码分支。
在一个可能的方式中,所述配置生成模块包括:
提取模块,用于针对每个环境代码分支中的差异内容,提取所述差异内容;
类型确定模块,用于确定所述差异内容的差异类型;
配置操作确定模块,用于确定预置配置操作中与所述差异类型相匹配的目标配置操作;
第一配置生成子模块,用于根据所述差异内容和所述目标配置操作,生成与所述环境代码分支的运行环境相匹配的环境配置文件。
在一个可能的方式中,所述第一配置生成子模块包括:
位置信息确定模块,用于确定所述差异内容在所述环境代码分支中的位置信息;
第二配置生成子模块,用于根据所述差异内容、所述差异内容对应的位置信息和所述目标配置操作,生成与所述环境代码分支的运行环境相匹配的环境配置文件。
在一个可能的方式中,所述装置还包括:
第一确定模块,用于确定所述多个运行环境中的第一运行环境;
第一获取模块,用于从所述第一版本的目标代码对应的版本代码分支中,获取与所述第一运行环境相匹配的目标环境配置文件;
第一生成模块,用于根据所述目标环境配置文件和所述版本代码分支中的所述基础内容,生成与所述第一运行环境相匹配的目标环境代码分支;
编译模块,用于编译所述目标环境代码分支,得到与所述第一运行环境相匹配的可执行文件。
在一个可能的方式中,所述第一生成模块包括:
第二获取模块,用于获取所述目标环境配置文件中的目标差异内容和目标配置操作;
第一生成子模块,用于根据所述目标差异内容,通过所述目标配置操作对所述版本代码分支中的所述基础内容进行目标配置,生成与所述第一运行环境相匹配的目标环境代码分支。
在一个可能的方式中,所述第一生成子模块包括:
第三获取模块,用于从所述目标环境配置文件中获取所述目标差异内容对应的位置信息;
位置确定模块,用于根据所述目标差异内容对应的位置信息,确定所述目标差异内容在所述版本代码分支的所述基础内容中的目标位置;
第二生成子模块,用于通过所述目标配置操作,在所述基础内容中的所述目标位置处对所述目标差异内容进行目标配置,生成与所述第一运行环境相匹配的目标环境代码分支。
另一方面,提供了一种计算机设备,包括处理器和存储器,所述存储器中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序由所述处理器加载并执行以实现上述代码仓库管理方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序由处理器加载并执行以实现如上述的代码仓库管理方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
本发明实施例针对目标代码在代码仓库中的任一版本,确定该版本对应的多个环境代码分支之间的相同内容以及每个环境代码分支中的差异内容,并根据每个环境代码分支的差异内容生成与该环境代码分支的运行环境相匹配的环境配置文件,进而根据多个环境代码分支之间的相同内容和多个环境配置文件生成与该版本的目标代码相对应的版本代码分支,通过上述的技术方案,在多运行环境的场景下,代码仓库针对软件的每个版本只需存储该版本的一个版本代码分支即可,每次新增软件版本时,代码仓库只需存储该软件版本的一个版本代码分支,相较于相关技术中每个版本需存储与运行环境数量N相当的N条代码分支,本发明实施例减少了仓库中代码分支的数量,进而简化了代码仓库的管理,提升了代码仓库对于各个版本代码的管理效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种实施环境的示意图;
图2是本发明实施例提供的一种代码仓库管理方法的流程示意图;
图3是本发明实施例提供的生成环境配置文件的一种可选的流程示意图;
图4是本发明实施例提供的生成环境配置文件的一种可选示例;
图5是本发明实施例提供的另一种代码仓库管理方法的流程示意图;
图6是本发明实施例提供的基于版本代码分支编译两个运行环境需要的可执行文件的一种可选示例;
图7是本发明实施例提供的一种代码仓库管理装置的结构示意图;
图8是本发明实施例提供的一种计算机设备的硬件结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
相关技术中,代码仓库对软件在多个运行环境下的多个版本的存储一般是先针对不同的运行环境建立对应各运行环境的代码分支,然后再针对每个运行环境建立多个版本的代码分支。举例而言,假设目前有4个运行环境,现在某软件A有一个418版本,则代码仓库需要在每个运行环境下存储一条418版本的代码分支,那么针对该软件A的418版本需要存储4条418版本的代码分支;若该软件A再增加一个518版本,则代码仓库需要在每个运行环境下再存储一条518版本的代码分支,那么针对该软件A的518版本需要存储4条518版本的代码分支;若该软件A再增加一个618版本,则代码仓库需要在每个运行环境下存储一条618版本的代码分支,那么针对该软件A的618版本需要存储4条618版本的代码分支。此时针对该软件A,代码仓库需要管理12(4x3=12)条代码分支,且该代码分支的总数随着运行环境数和版本数的变化而变化,也即相关技术中代码仓库中每个软件对应代码分支的数量同时受运行环境数和版本数的二维影响,从而不仅管理起来比较复杂,降低了代码仓库对于各个版本代码的管理效率,而且维护成本非常高,代码仓库的管理成本将呈现针对运行环境数的线性倍数的增加。
鉴于此,本发明实施例提供一种代码仓库管理方法,该方法把运行环境数和版本数的二维变化修改为仅基于版本的一维变化,也即代码仓库中软件的每个版本只存储一条版本代码分支,相较于相关技术中每增加一个版本需要存储与运行环境数量相当的N条代码分支,本发明实施例不仅简化了代码仓库的管理,提升了代码仓库对于各个版本代码的管理效率,而且大大降低了代码仓库的维护成本。
请参阅图1,其所示为本发明实施例提供的一种实施环境示意图,该实施环境可以包括终端110和服务器120。
终端110可以是智能手机、平板电脑、笔记本电脑、台式计算机和其他计算机设备。服务器120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端110以及服务器120可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
服务器120中维护有用于代码版本管理的代码仓库,该代码仓库可以但不限于是Git仓库,Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。代码仓库提供有分支(branch)功能,通过利用代码分支可以将工作从开发主线上分离开,以免影响开发主线,也即代码分支是同一软件对应的不同的代码线。
终端110中可以安装有服务器120提供服务的客户端,如该客户端可以是Git,终端110可以通过该客户端实现例如数据传输、消息交互等功能。终端110对应的用户可以是开发团队中的开发人员,该开发人员可以通过终端110中的客户端创建与当前阶段相对应的代码分支,并通过该客户端向服务器120维护的代码仓库中推送该代码分支。实际应用中,软件的开发需要经历不同的阶段,各个阶段对应的环境即软件的运行环境也不同,一般可以包括开发环境、测试环境、预发布环境和正式环境。
请参阅图2,其所示为本发明实施例提供的一种代码仓库管理方法的流程示意图,该方法可以应用于图1中的服务器。需要说明的是,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,所述方法可以包括:
S201,获取第一版本的目标代码,确定该第一版本的目标代码对应的多个环境代码分支。
其中,第一版本是所述目标代码在代码仓库中的任一版本,所述多个环境代码分支与运行所述目标代码的多个运行环境相对应。
目标代码可以是代码仓库中存储的任一应用程序代码,该目标代码在代码仓库中存在至少一个版本,可以从代码仓库中获取该目标代码的任一版本作为第一版本,目标代码的每个版本均有适用于不同开发阶段的代码分支,不同开发阶段对应的目标代码的运行环境一般不同,实际应用中,对应各开发阶段的运行环境一般分别为开发环境、测试环境、预发布环境和正式环境,也即代码仓库中目标代码的每个版本均有适用于不同运行环境的代码分支。
本发明实施例中,将目标代码的适用于某个运行环境的代码分支称为与该运行环境相对应的环境代码分支。例如,当运行环境包括开发环境、测试环境、预发布环境和正式环境时,每个版本的目标代码具有分别与上述开发环境、测试环境、预发布环境和正式环境相对应的环境代码分支。
可以理解的,实际应用中用于运行目标代码的运行环境不限于上述的开发环境、测试环境、预发布环境和正式环境,还可以根据实际需要设置更多或者更少的运行环境,本发明对此不作具体限制。
S203,确定所述多个环境代码分支之间的相同内容以及每个环境代码分支中的差异内容,所述差异内容是所述环境代码分支中不同于其他环境代码分支的内容。
实际应用中,代码仓库中对应不同运行环境的同一版本的目标代码一般包括两个部分,一个部分是根据运行环境变化的内容,另一个部分是不随运行环境变化的内容。以目标代码是APP(Application,应用程序)代码为例,不同运行环境下的密钥、需要包含的子工程、访问的后台地址等等都是不一致的,则将各环境代码分支中这些根据运行环境变化的内容称为差异内容,而不随运行环境变化的内容即为相同内容。
其中,环境代码分支中的差异内容可以但不限于包括代码、图片、布局文件、音频文件、签名文件等等。同样,多个环境代码分支之间的相同内容也可以但不限于包括代码、图片、布局文件、音频文件、签名文件等等。
具体的实施中,可以比对第一版本的目标代码对应的多个环境代码分支,从而找到每个环境代码分支中不同于其他环境代码分支的内容,该不同的内容即为该环境代码分支中的差异内容。
S205,根据每个环境代码分支的差异内容生成与所述环境代码分支的运行环境相匹配的环境配置文件,得到对应所述多个运行环境的多个环境配置文件。
具体的,步骤S205在执行时可以采用图3所示的方法,图3所示为本发明实施例提供的根据每个环境代码分支的差异内容生成与所述环境代码分支的运行环境相匹配的环境配置文件的一种可选方法的流程示意图,如图3所示,可以包括:
S301,针对每个环境代码分支中的差异内容,提取所述差异内容。
以差异内容是图片1为例,可以提取该图片1。
S303,确定所述差异内容的差异类型。
其中,差异类型可以根据差异内容在环境分支代码中的内容形式来确定,差异类型可以包括图片、音视频、代码等等,具体的可以根据实际应用中涉及到的内容形式来确定。如上述举例中差异内容为图片1,则该差异内容对应的差异类型为图片。
S305,确定预置配置操作中与所述差异类型相匹配的目标配置操作。
本发明实施例中,针对可能涉及到的差异类型预先配置有与各差异类型相匹配的配置操作,该配置操作用于表征在相应差异类型下将要执行的配置动作。例如,当差异类型为图片时,可以为该差异类型设置将差异内容拷贝到相应位置的配置操作,也即预置有预设差异类型与预设配置操作之间的映射关系,其中预设配置操作可以但不限于包括复制差异内容、删除差异内容等等,可以根据实际应用中的需要设置更多种配置操作,本发明对此不作具体限定。
具体的实施中,可以查找预置配置操作中与所述差异类型相匹配的目标映射关系,然后将该目标映射关系中的配置操作作为目标配置操作。
S307,根据所述差异内容和所述目标配置操作,生成与所述环境代码分支的运行环境相匹配的环境配置文件。
实际应用中,在生成环境配置文件时,还可以确定差异内容在相应环境分支代码中的位置信息,然后根据差异内容、该差异内容对应的位置信息和目标配置操作生成与该环境分支代码的运行环境相匹配的环境配置文件。
其中,差异内容的位置信息可以通过差异内容的前后字符来表征,例如,差异内容之前的字符是字符“a”,该差异内容之后的字符是字符“b”,则该差异内容的位置信息可以表征为{a,b}。当然,还可以采用其他能够表征位置信息的方式,例如与首字符之间的字符数量差等,本发明对此不作具体限定。
以图4中所示包括的两个运行环境分别为dev(开发环境)以及sit(测试环境)为例,确定出环境代码分支dev和环境代码分支sit中的相同内容,并分别提取出环境代码分支dev和环境代码分支sit中的差异内容,其中,环境代码分支dev中的差异内容用于生成dev环境对应的环境配置文件Dev,环境代码分支sit中的差异内容用于生成环境配置文件Sit。
S207,将所述多个环境代码分支之间的相同内容作为基础内容,根据所述基础内容和所述多个环境配置文件生成与所述第一版本的目标代码相对应的版本代码分支。
本发明实施例中,将第一版本的目标代码对应的多个环境代码分支之间的相同内容作为基础内容,并根据基础内容和前述步骤S205中对应各运行环境的多个环境配置文件生成该第一版本的目标代码在代码仓库中的版本代码分支,从而代码仓库中针对该目标代码的第一版本只存储对应的一条版本代码分支。
基于前述技术方案,代码仓库针对多个运行环境下的目标代码的任一版本只存储对应的一个版本代码分支,每个版本代码分支包括相应的基础内容和对应各运行环境的多个环境配置文件。那么,当有N个运行环境,目标代码有n个版本时,代码仓库针对该目标代码只需管理n条版本代码分支,相对于现有技术中需要管理N*n条代码分支而言,本发明实施例只需考虑版本这一个维度的变化,大大降低了代码仓库的管理复杂度,简化了代码仓库的管理,提升了代码仓库对于各个版本代码的管理效率,且降低了代码仓库的维护成本。
请参阅图5,其所示为本发明实施例提供的另一种代码仓库管理方法的流程示意图,该方法在前述图2所示步骤S207之后还可以包括:
S501,确定所述多个运行环境中的第一运行环境。
其中,第一运行环境是将要部署并运行第一版本的目标代码的运行环境,可以是多个运行环境中的任一运行环境。例如多个运行环境包括开发环境、测试环境、预发布环境和正式环境,目前需要将a版本的应用程序代码部署并运行到测试环境中,则该第一运行环境即为测试环境;若目前需要将a版本的应用程序代码部署并运行到预发布环境中,则该第一运行环境即为预发布环境。
S503,从所述第一版本的目标代码对应的版本代码分支中,获取与所述第一运行环境相匹配的目标环境配置文件。
由于第一版本的目标代码对应版本代码分支中包括对应各运行环境的环境配置文件,因此可以根据运行环境与环境配置文件的匹配关系,获取第一运行环境匹配的环境配置文件。例如,多个运行环境包括开发环境、测试环境、预发布环境和正式环境,第一运行环境为测试环境,则可以从第一版本的目标代码对应的版本代码分支中获取测试环境对应的环境配置文件即得目标环境配置文件。
S505,根据所述目标环境配置文件和所述版本代码分支中的所述基础内容,生成与所述第一运行环境相匹配的目标环境代码分支。
具体的实施中,可以获取目标环境配置文件中的目标差异内容和目标配置操作;根据该目标差异内容,通过所述目标配置操作对所述版本代码分支中的基础内容进行目标配置,从而生成与上述第一运行环境相匹配的目标环境代码分支。
作为一个可能的实施方式,在根据目标差异内容,通过目标配置操作对所述版本代码分支中的基础内容进行目标配置生成与第一运行环境相匹配的目标环境代码分支时,可以先从目标环境配置文件中获取目标差异内容对应的位置信息,然后根据目标差异内容对应的位置信息,确定该目标差异内容在版本代码分支的基础内容中的目标位置,进而通过目标配置操作在该基础内容中的目标位置处对目标差异内容进行目标配置,生成与第一运行环境相匹配的目标环境代码分支。
通过目标配置操作可以将目标差异内容融合到上述版本代码分支的基础内容中,从而形成一个完整的代码分支,且该完整的代码分支与将要部署并运行第一版本的目标代码的运行环境相适配。
S507,编译所述目标环境代码分支,得到与所述第一运行环境相匹配的可执行文件。
实际应用中,上述步骤S501至S505可以看作是编译前的处理,即可以在编译脚本的编译逻辑前增加用于实现上述步骤S501至S505功能的环境配置逻辑。
仍以两个运行环境分别为dev(开发环境)和sit(测试环境)为例,如图6所示,虚线框中表示v1.0版本的应用程序代码的版本代码分支,该版本代码分支包括一条基础内容x和两个环境配置文件即dev配置和sit配置。编译脚本中包括用于实现上述步骤S501至S505的前处理环境配置逻辑,在进行dev编译过程中先根据dev配置对版本代码分支中的基础内容x进行环境配置,然后对环境配置后的dev环境代码分支编译得到适配于dev环境的安装包Dev.apk;类似的,在进行sit编译过程中先根据sit配置对版本代码分支中的基础内容x进行环境配置,然后对环境配置后的sit环境代码分支编译得到适配于sit环境的安装包Sit.apk。
由本发明实施例的上述技术方案可见,本发明实施例针对任一版本的目标代码,可以基于该版本对应的一条版本代码分支编译出多个运行环境所需要的可执行文件即安装包,提高了代码仓库的管理效率以及可执行文件的编译效率。
与上述几种实施例提供的代码仓库管理方法相对应,本发明实施例还提供一种代码仓库管理装置,由于本发明实施例提供的代码仓库管理装置与上述几种实施例提供的代码仓库管理方法相对应,因此前述代码仓库管理方法的实施方式也适用于本实施例提供的代码仓库管理装置,在本实施例中不再详细描述。
请参阅图7,其所示为本发明实施例提供的一种代码仓库管理装置的结构示意图,该装置具有实现上述方法实施例中代码仓库管理方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。如图7所示,该装置可以包括:
环境分支确定模块710,用于获取第一版本的目标代码,确定所述第一版本的目标代码对应的多个环境代码分支,所述第一版本是所述目标代码在代码仓库中的任一版本,所述多个环境代码分支与运行所述目标代码的多个运行环境相对应;
内容确定模块720,用于确定所述多个环境代码分支之间的相同内容以及每个环境代码分支中的差异内容,所述差异内容是所述环境代码分支中不同于其他环境代码分支的内容;
配置生成模块730,用于根据每个环境代码分支的差异内容,生成与所述环境代码分支的运行环境相匹配的环境配置文件,得到对应所述多个运行环境的多个环境配置文件;
版本分支生成模块740,用于将所述多个环境代码分支之间的相同内容作为基础内容,根据所述基础内容和所述多个环境配置文件生成与所述第一版本的目标代码相对应的版本代码分支。
在一个可能的实施方式中,配置生成模块730可以包括:
提取模块,用于针对每个环境代码分支中的差异内容,提取所述差异内容;
类型确定模块,用于确定所述差异内容的差异类型;
配置操作确定模块,用于确定预置配置操作中与所述差异类型相匹配的目标配置操作;
第一配置生成子模块,用于根据所述差异内容和所述目标配置操作,生成与所述环境代码分支的运行环境相匹配的环境配置文件。
在一个可能的实施方式中,第一配置生成子模块可以包括:
位置信息确定模块,用于确定所述差异内容在所述环境代码分支中的位置信息;
第二配置生成子模块,用于根据所述差异内容、所述差异内容对应的位置信息和所述目标配置操作,生成与所述环境代码分支的运行环境相匹配的环境配置文件。
在一个可能的实施方式中,该装置还可以包括:
第一确定模块,用于确定所述多个运行环境中的第一运行环境;
第一获取模块,用于从所述第一版本的目标代码对应的版本代码分支中,获取与所述第一运行环境相匹配的目标环境配置文件;
第一生成模块,用于根据所述目标环境配置文件和所述版本代码分支中的所述基础内容,生成与所述第一运行环境相匹配的目标环境代码分支;
编译模块,用于编译所述目标环境代码分支,得到与所述第一运行环境相匹配的可执行文件。
在一个可能的实施方式中,第一生成模块可以包括:
第二获取模块,用于获取所述目标环境配置文件中的目标差异内容和目标配置操作;
第一生成子模块,用于根据所述目标差异内容,通过所述目标配置操作对所述版本代码分支中的所述基础内容进行目标配置,生成与所述第一运行环境相匹配的目标环境代码分支。
在一个可能的实施方式中,第一生成子模块可以包括:
第三获取模块,用于从所述目标环境配置文件中获取所述目标差异内容对应的位置信息;
位置确定模块,用于根据所述目标差异内容对应的位置信息,确定所述目标差异内容在所述版本代码分支的所述基础内容中的目标位置;
第二生成子模块,用于通过所述目标配置操作,在所述基础内容中的所述目标位置处对所述目标差异内容进行目标配置,生成与所述第一运行环境相匹配的目标环境代码分支。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例的代码仓库管理装置针对目标代码在代码仓库中的任一版本,确定该版本对应的多个环境代码分支之间的相同内容以及每个环境代码分支中的差异内容,并根据每个环境代码分支的差异内容生成与该环境代码分支的运行环境相匹配的环境配置文件,进而根据多个环境代码分支之间的相同内容和多个环境配置文件生成与该版本的目标代码相对应的版本代码分支,通过上述的技术方案,在多运行环境的场景下,代码仓库针对软件的每个版本只需存储该版本的一个版本代码分支即可,每次新增软件版本时,代码仓库只需增加该软件版本的一个版本代码分支,相较于相关技术中每个版本需存储与运行环境数量N相当的N条代码分支,本发明实施例减少了仓库中代码分支的数量,进而简化了代码仓库的管理,提升了代码仓库对于各个版本代码的管理效率,且大大降低了代码仓库的维护成本。
本发明实施例提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令或者至少一段程序,该至少一条指令或者该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的代码仓库管理方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及代码仓库管理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本发明实施例所提供的方法实施例可以在计算机终端、服务器或者类似的运算装置中执行,即上述计算机设备可以包括计算机终端、服务器或者类似的运算装置。图8是本发明实施例提供的运行一种代码仓库管理方法的计算机设备的硬件结构框图,如图8所示,该计算机设备的内部结构可包括但不限于:处理器、网络接口及存储器。其中,计算机设备内的处理器、网络接口及存储器可通过总线或其他方式连接,在本说明书实施例所示图8中以通过总线连接为例。
其中,处理器(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等)。存储器(Memory)是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器可以是高速RAM存储设备,也可以是非不稳定的存储设备(non-volatile memory),例如至少一个磁盘存储设备;可选的还可以是至少一个位于远离前述处理器的存储装置。存储器提供存储空间,该存储空间存储了电子设备的操作系统,可包括但不限于:Windows系统(一种操作系统),Linux(一种操作系统),Android(安卓,一种移动操作系统)系统、IOS(一种移动操作系统)系统等等,本发明对此并不作限定;并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。在本说明书实施例中,处理器加载并执行存储器中存放的一条或一条以上指令,以实现上述方法实施例提供的代码仓库管理方法。
本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可设置于计算机设备之中以保存用于实现一种代码仓库管理方法相关的至少一条指令或者至少一段程序,该至少一条指令或者该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的代码仓库管理方法。
本发明的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种代码仓库管理方法,其特征在于,所述方法包括:
获取第一版本的目标代码,确定所述第一版本的目标代码对应的多个环境代码分支;所述第一版本是所述目标代码在代码仓库中的任一版本,所述多个环境代码分支与运行所述目标代码的多个运行环境相对应;
确定所述多个环境代码分支之间的相同内容以及每个环境代码分支中的差异内容,所述差异内容是所述环境代码分支中不同于其他环境代码分支的内容;
根据每个环境代码分支的差异内容,生成与所述环境代码分支的运行环境相匹配的环境配置文件,得到对应所述多个运行环境的多个环境配置文件;
将所述多个环境代码分支之间的相同内容作为基础内容,根据所述基础内容和所述多个环境配置文件生成与所述第一版本的目标代码相对应的版本代码分支。
2.根据权利要求1所述的代码仓库管理方法,其特征在于,所述根据每个环境代码分支的差异内容生成与所述环境代码分支的运行环境相匹配的环境配置文件包括:
针对每个环境代码分支中的差异内容,提取所述差异内容;
确定所述差异内容的差异类型;
确定预置配置操作中与所述差异类型相匹配的目标配置操作;
根据所述差异内容和所述目标配置操作,生成与所述环境代码分支的运行环境相匹配的环境配置文件。
3.根据权利要求2所述的代码仓库管理方法,其特征在于,所述根据所述差异内容和所述目标配置操作,生成与所述环境代码分支的运行环境相匹配的环境配置文件包括:
确定所述差异内容在所述环境代码分支中的位置信息;
根据所述差异内容、所述差异内容对应的位置信息和所述目标配置操作,生成与所述环境代码分支的运行环境相匹配的环境配置文件。
4.根据权利要求1所述的代码仓库管理方法,其特征在于,所述方法还包括:
确定所述多个运行环境中的第一运行环境;
从所述第一版本的目标代码对应的版本代码分支中,获取与所述第一运行环境相匹配的目标环境配置文件;
根据所述目标环境配置文件和所述版本代码分支中的所述基础内容,生成与所述第一运行环境相匹配的目标环境代码分支;
编译所述目标环境代码分支,得到与所述第一运行环境相匹配的可执行文件。
5.根据权利要求4所述的代码仓库管理方法,其特征在于,所述根据所述目标环境配置文件和所述版本代码分支中的所述基础内容,生成与所述第一运行环境相匹配的目标环境代码分支包括:
获取所述目标环境配置文件中的目标差异内容和目标配置操作;
根据所述目标差异内容,通过所述目标配置操作对所述版本代码分支中的所述基础内容进行目标配置,生成与所述第一运行环境相匹配的目标环境代码分支。
6.根据权利要求5所述的代码仓库管理方法,其特征在于,所述根据所述目标差异内容,通过所述目标配置操作对所述版本代码分支中的所述基础内容进行目标配置,生成与所述第一运行环境相匹配的目标环境代码分支包括:
从所述目标环境配置文件中获取所述目标差异内容对应的位置信息;
根据所述目标差异内容对应的位置信息,确定所述目标差异内容在所述版本代码分支的所述基础内容中的目标位置;
通过所述目标配置操作,在所述基础内容中的所述目标位置处对所述目标差异内容进行目标配置,生成与所述第一运行环境相匹配的目标环境代码分支。
7.一种代码仓库管理装置,其特征在于,所述装置包括:
环境分支确定模块,用于获取第一版本的目标代码,确定所述第一版本的目标代码对应的多个环境代码分支;所述第一版本是所述目标代码在代码仓库中的任一版本,所述多个环境代码分支与运行所述目标代码的多个运行环境相对应;
内容确定模块,用于确定所述多个环境代码分支之间的相同内容以及每个环境代码分支中的差异内容,所述差异内容是所述环境代码分支中不同于其他环境代码分支的内容;
配置生成模块,用于根据每个环境代码分支的差异内容,生成与所述环境代码分支的运行环境相匹配的环境配置文件,得到对应所述多个运行环境的多个环境配置文件;
版本分支生成模块,用于将所述多个环境代码分支之间的相同内容作为基础内容,根据所述基础内容和所述多个环境配置文件生成与所述第一版本的目标代码相对应的版本代码分支。
8.根据权利要求7所述的代码仓库管理装置,其特征在于,所述装置还包括:
第一确定模块,用于确定所述多个运行环境中的第一运行环境;
第一获取模块,用于从所述第一版本的目标代码对应的版本代码分支中,获取与所述第一运行环境相匹配的目标环境配置文件;
第一生成模块,用于根据所述目标环境配置文件和所述版本代码分支中的所述基础内容,生成与所述第一运行环境相匹配的目标环境代码分支;
编译模块,用于编译所述目标环境代码分支,得到与所述第一运行环境相匹配的可执行文件。
9.一种计算机设备,其特征在于,包括处理器和存储器,所述存储器中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序由所述处理器加载并执行以实现如权利要求1~6中任一项所述的仓库管理方法。
10.一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序由处理器加载并执行以实现如权利要求1~6任一项所述的仓库管理方法。
CN202010999270.3A 2020-09-22 2020-09-22 代码仓库管理方法、装置、计算机设备及存储介质 Pending CN114253595A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010999270.3A CN114253595A (zh) 2020-09-22 2020-09-22 代码仓库管理方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010999270.3A CN114253595A (zh) 2020-09-22 2020-09-22 代码仓库管理方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN114253595A true CN114253595A (zh) 2022-03-29

Family

ID=80789318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010999270.3A Pending CN114253595A (zh) 2020-09-22 2020-09-22 代码仓库管理方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN114253595A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117492822A (zh) * 2023-12-29 2024-02-02 杭州新中大科技股份有限公司 变更对比方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117492822A (zh) * 2023-12-29 2024-02-02 杭州新中大科技股份有限公司 变更对比方法、装置、电子设备及存储介质
CN117492822B (zh) * 2023-12-29 2024-03-29 杭州新中大科技股份有限公司 变更对比方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US10481884B2 (en) Systems and methods for dynamically replacing code objects for code pushdown
CN107577475B (zh) 一种数据中心集群系统的软件包管理方法及系统
US10901804B2 (en) Apparatus and method to select services for executing a user program based on a code pattern included therein
US20240045850A1 (en) Systems and methods for database orientation transformation
US10585655B2 (en) Systems and methods for automated retrofitting of customized code objects
CN111209005A (zh) 程序文件的编译方法、装置和计算机可读存储介质
CN110032388B (zh) 一种增量文件的构建、发布、下载方法及装置
US20150363195A1 (en) Software package management
US11537367B1 (en) Source code conversion from application program interface to policy document
CN111796855B (zh) 一种增量版本更新方法、装置、存储介质及计算机设备
CN112702195A (zh) 网关配置方法、电子设备及计算机可读存储介质
CN115686606A (zh) 一种项目依赖树的展示方法、装置、系统及介质
CN113515303B (zh) 一种项目转型方法、装置和设备
CN114443076A (zh) 镜像构建方法、装置、设备及存储介质
CN114253595A (zh) 代码仓库管理方法、装置、计算机设备及存储介质
CN113791809B (zh) 应用异常处理方法、装置以及计算机可读存储介质
CN111428209A (zh) 一种应用程序的混淆方法、装置及存储介质
CN115048082A (zh) 微前端系统构建方法、装置、服务器及可读存储介质
CN114968350A (zh) 一种代码方法调用链的搜索方法、装置及设备
CN114356379A (zh) 基于备份的服务升级方法、装置、设备及存储介质
CN113127005A (zh) 一种可执行文件生成的方法、装置以及计算机存储介质
US20210034507A1 (en) Systems and methods for automated invocation of accessibility validations in accessibility scripts
US11709770B2 (en) System and method for implementing a one to many configuration management tool
US20230385075A1 (en) Networked Universal Code Package Provider
CN114840217A (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