一种合并代码的方法及装置与流程

文档序号:17474353发布日期:2019-04-20 06:01阅读:434来源:国知局
一种合并代码的方法及装置与流程

本发明涉及计算机领域,特别是涉及一种合并代码的方法及装置。



背景技术:

在软件的开发过程中,可以由多个开发人员在各个开发分支上开发不同的功能。具体的,可以对应于各个开发分支编译相应的代码,分别对应各个开发分支的功能,当然,在需要对功能进行调整时,可以对编译形成的代码进行修改。将编译形成的代码合并到主干分支上,根据主干分支的内容形成的软件具有各个开发分支对应的功能,因此,实现了软件的开发。

现有技术中,将对应于各个开发分支的代码合并到开发主干上,通常需要人工来实现,然而,随着软件开发的需求逐渐增大,人工合并代码往往需要较长的时间,影响软件的开发效率,此外,软件的开发过程中往往有很多修改,如果每次都通过人工合并代码,则需要的时间更长。



技术实现要素:

为解决上述技术问题,本申请实施例提供一种合并代码的方法及装置,可以自动将开发分支的代码合并到开发主干上,提高软件的开发效率。

本申请实施例提供了一种合并代码的方法,所述方法包括:

将至少一个待合并代码合并到对应的开发分支上;

将所述开发分支上的内容合并到测试分支上;

对所述测试分支上的内容进行测试,若测试通过,则将所述测试分支上的内容合并到主干分支上。

可选的,在所述将至少一个待合并代码合并到对应的开发分支上之前,所述方法还包括:

根据所述待合并代码的存储路径,获取至少一个所述待合并代码。

可选的,所述将所述开发分支上的内容合并到测试分支上,包括:

对所述开发分支上的内容进行测试,若测试通过,则将所述开发分支上的内容合并到测试分支上。

可选的,若对所述开发分支上的内容测试不通过,和/或,对所述测试分支上的内容测试不通过,则进行提示。

可选的,所述待合并代码具有版本号,所述方法还包括:

根据所述待合并代码的版本号,修改所述开发分支、所述测试分支和所述主干分支的版本号。

可选的,若以下任意一项进行失败,则进行提示:将至少一个所述待合并代码合并到对应的所述开发分支、将所述开发分支上的内容合并到所述测试分支上、将所述测试分支上的内容合并到所述主干上。

本申请实施例还提供了一种合并代码的装置,所述装置包括:

第一合并单元,用于将至少一个待合并代码合并到对应的开发分支上;

第二合并单元,用于将所述开发分支上的内容合并到测试分支上;

第三合并单元,用于对测试分支上的内容进行测试,若测试通过,则将所述测试分支上的内容合并到主干分支上。

可选的,所述装置还包括:

代码获取单元,用于根据所述待合并代码的存储路径,获取至少一个所述待合并代码,以便所述第一合并单元将至少一个待合并代码合并到对应的额开发分支上。

可选的,所述第二合并单元具体用于:对所述开发分支上的内容进行测试,若测试通过,则将所述开发分支上的内容合并到测试分支上。

可选的,所述待合并代码具有版本号,

则所述第一合并单元还用于:根据所述待合并代码的版本号,修改所述开发分支的版本号;

所述第二合并单元还用于:根据所述待合并代码的版本号,修改所述测试分支的版本号。

所述第三合并单元还用于:根据所述待合并代码的版本号,修改所述主干分支的版本号。

可选的,若所述第二合并单元和/或第三合并单元的测试结果为不通过,则进行提示。

可选的,若所述第一合并单元、第二合并单元和第三合并单元的其中之一执行的合并失败,则可以进行提示。

本申请实施例提供了一种合并代码的方法及装置,将至少一个待合并代码合并到对应的开发分支上,对开发分支上的内容进行测试,若测试通过,则将开发分支上的内容合并到测试分支上,对测试分支上的内容进行测试,若测试通过,则将测试分支上的内容合并到主干分支上。本申请实施例中,可以自动实现待合并代码向主干文件的合并,相比于现有技术中通过人工来实现代码合并的方式,节省了操作时间,提高软件的开发效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种合并代码的方法的流程图;

图2为本申请实施例提供的一种合并代码的装置的结构框图。

具体实施方式

发明人经过研究发现,在软件的开发过程中,可以由多个开发人员在各个开发分支上开发不同的功能。具体的,可以对应于各个开发分支编译相应的代码,分别对应各个开发分支的功能,当然,在需要对功能进行调整时,可以对编译形成的代码进行修改。将编译形成的代码合并到主干分支上,根据主干分支上的内容形成的软件则具有各个开发分支对应的功能,因此,实现了软件的开发。

然而,将对应于各个开发分支的代码合并到开发主干上,通常需要人工来实现,然而,随着软件开发的需求逐渐增大,人工合并代码往往需要较长的时间,影响软件的开发效率,此外,软件的开发过程中往往有很多修改,如果每次都通过人工合并代码,则需要的时间更长。

基于此,本申请实施例提供了一种合并代码的方法及装置,将至少一个待合并代码合并到对应的开发分支上,对开发分支上的内容进行测试,若测试通过,则将开发分支上的内容合并到测试分支上,对测试分支上的内容进行测试,若测试通过,则将测试分支上的内容合并到主干分支上。本申请实施例中,可以自动实现待合并代码向主干文件的合并,相比于现有技术中通过人工来实现代码合并的方式,节省了操作时间,提高软件的开发效率。

下面结合附图,通过实施例来详细说明本申请实施例提供的一种合并代码的方法及装置的具体实现方式。参考图1所示为本申请实施例提供的一种合并代码的方法的流程图,可以包括以下步骤。

s101,将至少一个待合并代码合并到对应的开发分支上。

待合并代码是对应于软件的各个开发分支(develop分支)上的代码,开发分支是面向开发人员的分支,各个开发分支对应于该软件中的各个功能,因此,待合并代码也与软件功能对应。

待合并代码可以是初次开发形成的代码,也可以是经过开发人员修改得到的代码。通常来说,对软件的开发或者调试过程中,可以只对其中一个开发分支上的代码进行调整,则待合并代码可以是对应一个开发分支上的一个代码,也可以对多个开发分支上的代码进行调整,因此,待合并代码也可以是对应多个开发分支的多个代码。

待合并代码可以具有版本号,用于区分不同版本的代码,版本号可以在待合并代码完成编译后更新,也可以合并代码之前更新,从而根据待合并代码的版本号来区分不同版本的软件。例如,待合并代码的版本号可以是2.0。

待合并代码也可以具有工程名,例如第一开发分支对应的待合并代码的工程名可以是第一代码,第二开发分支对应的待合并代码的工程名可以是第二代码。通过待合并代码的工程名和版本号可以查找待合并代码。例如待合并代码可以是第一代码2.0,表示该待合并代码为第一开发分支对应的第二个版本的代码。

待合并代码可以存储在代码库中,例如可以存储在云端,也可以存储在本地,在合并代码之前,可以根据待合并代码的存储位置,获取待合并代码的存储路径,从而根据存储路径获取待合并代码。待合并代码的存储位置与软件相关,同一个软件的多个待合并代码的存储位置可以相同,也可以不同。待合并代码的存储路径可以是“ssh://lirr@10.10.142.183:29418/$工程名”。

可以理解的是,可以根据待更新软件或待开发软件,确定待合并代码的存储位置,例如某一软件对应的待合并代码默认存储在某一位置,则可以根据该软件的信息获取对应的待合并代码。

将至少一个待合并代码合并到对应的开发分支上,可以具体为,拉取至少一个开发分支,通过merge运算将至少一个待合并代码合并到对应的开发分支上,根据开发分支的存储路径存储合并后的开发分支。因此,各个开发分支上的内容均包括该开发分支对应的编译后的待合并代码或修改后的待合并代码,也就是说,经过合并后的开发分支可以实现该开发分支对应的调整后的功能。

在将待合并代码合并到对应的开发分支上后,还可以根据待合并代码的版本号修改开发分支的版本号,以使开发分支的版本号和待合并代码的版本号一致。

若将至少一个待合并代码合并到对应的开发分支上的步骤进行失败,则可以进行提示,以便开发人员检查合并失败的原因。

s102,将开发分支上的内容合并到测试分支上。

测试分支(release分支)是面向测试者的分支,测试分支上的内容可以包括各个开发分支上的内容。

将开发分支上的内容合并到测试分支上,可以具体为,拉取测试分支,通过merge运算将至少一个开发分支上的内容合并到测试分支上,根据测试分支的存储路径存储合并后的测试分支。因此,测试分支上的内容包括至少一个开发分支对应的编译后的待合并代码或修改后的待合并代码,也就是说,经过合并后的测试分支可以实现各个开发分支对应的调整后的功能。

在将开发分支上的内容合并到测试分支上之前,为了代码的可靠性,还可以对开发分支上的内容进行测试,具体的,可以测试开发分支上的内容语法等是否正确,能够实现对应的功能等。若测试通过,则说明开发分支上的内容较为可靠,可以将该内容合并到测试分支上。若测试不通过,说明开发分支上的内容出现故障,则可以进行提示,以便开发人员进行相应代码的修改以及代码的合并。

在将开发分支上的内容合并到测试分支上之后,还可以根据开发分支的版本号修改测试分支的版本号,以便测试分支的版本号和待合并代码以及开发分支的版本号一致。

若将开发分支上的内容合并到测试分支上的步骤进行失败,则可以进行提示,以便开发人员检查合并失败的原因。

s103,对测试分支上的内容进行测试,若测试通过,则将测试分支上的内容合并到主干分支上。

测试分支是面向测试者的分支,测试分分支上的内容可以包括各个开发分支上的内容,测试分支可以实现各个开发分支对应的功能。因此,在将开发分支上的内容合并到测试分支上后,为了测试分支的可靠性,还可以对测试分支上的内容进行测试,以检测测试分支上的内容是否存在漏洞,以及是否能够实现各个开发分支对应的功能等。若对测试分支上的内容测试通过,则说明测试分支上的内容较为可靠,可以将该内容合并到主干分支(master分支)上。若对测试分支上的内容测试不通过,说明测试分支上的内容存在问题,则可以进行提示,以便开发人员进行代码的修改以及代码的重新合并。

将测试分支上的内容合并到主干分支上,可以具体为,拉取主干分支,通过merge运算将至少一个测试分支上的内容合并到主干分支上,根据主干分支的存储路径存储合并后的主干分支。因此,合并后的主干分支可以实现各个开发分支对应的调整后的功能。

在将测试分支上的内容合并到主干分支上之后,还可以根据测试分支的版本号修改主干分支的版本号,以便主干分支的版本号和待合并代码、开发分支以及测试分支的版本号一致。

若将测试分支上的内容合并到主干分支上的步骤进行失败,则可以进行提示,以便开发人员检查合并失败的原因。

在将测试分支上的内容合并到主干分支上后,还可以为待合并代码添加标签,用于表征待合并代码已完成合并,在下一次代码合并过程中,将不进行有标签的代码的合并。

主干分支上的内容可以用于形成软件,由于主干分支上的内容是根据待合并代码形成的,而待合并代码是开发人员针对软件的功能开发的,因此,根据主干分支形成的软件具有相应的功能,从而,实现软件的开发。

本申请实施例提供了一种合并代码的方法,将至少一个待合并代码合并到对应的开发分支上,对开发分支上的内容进行测试,若测试通过,则将开发分支上的内容合并到测试分支上,对测试分支上的内容进行测试,若测试通过,则将测试分支上的内容合并到主干分支上。本申请实施例中,可以自动实现待合并代码向主干文件的合并,相比于现有技术中通过人工来实现代码合并的方式,节省了操作时间,提高软件的开发效率。

基于以上一种合并代码的方法,本申请实施例还提供了一种合并代码的装置,参考图2所示,为本申请实施例提供的一种合并代码的装置的结构框图,可以包括:

第一合并单元110,用于将至少一个待合并代码合并到对应的开发分支上;

第二合并单元120,用于将所述开发分支上的内容合并到测试分支上;

第三合并单元130,用于对测试分支上的内容进行测试,若测试通过,则将所述测试分支上的内容合并到主干分支上。

可选的,所述装置还包括:

代码获取单元,用于根据所述待合并代码的存储路径,获取至少一个所述待合并代码,以便所述第一合并单元将至少一个待合并代码合并到对应的额开发分支上。

可选的,所述第二合并单元具体用于:对所述开发分支上的内容进行测试,若测试通过,则将所述开发分支上的内容合并到测试分支上。

可选的,所述待合并代码具有版本号,

则所述第一合并单元还用于:根据所述待合并代码的版本号,修改所述开发分支的版本号;

所述第二合并单元还用于:根据所述待合并代码的版本号,修改所述测试分支的版本号。

所述第三合并单元还用于:根据所述待合并代码的版本号,修改所述主干分支的版本号。

可选的,若所述第二合并单元和/或第三合并单元的测试结果为不通过,则进行提示。

可选的,若所述第一合并单元、第二合并单元和第三合并单元的其中之一执行的合并失败,则可以进行提示。

本申请实施例提供了一种合并代码的装置,将至少一个待合并代码合并到对应的开发分支上,对开发分支上的内容进行测试,若测试通过,则将开发分支上的内容合并到测试分支上,对测试分支上的内容进行测试,若测试通过,则将测试分支上的内容合并到主干分支上。本申请实施例中,可以自动实现待合并代码向主干文件的合并,相比于现有技术中通过人工来实现代码合并的方式,节省了操作时间,提高软件的开发效率。

本申请实施例中提到的“第一……”、“第一……”等名称中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”等。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-onlymemory,rom)/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例和设备实施例而言,由于其基本相似于系统实施例,所以描述得比较简单,相关之处参见系统实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1