发布信息

代码合并方法、装置及相关设备与流程 专利技术说明

作者:admin      2022-11-26 13:14:21     752



计算;推算;计数设备的制造及其应用技术1.本发明涉及计算机技术领域,尤其涉及一种代码合并方法、装置及相关设备。背景技术:2.由于同一软件不同版本投入生产使用时间不同,导致同一模块代码在同一时间内存在不同版本,而上一个版本完成投产后,需要与当前运行版本进行合并,但是,导致的版本差异需要手工合并。然而,手工合并需要人工判断,耗费人力,且容易出错,仅依靠提交时间判断并不严谨。技术实现要素:3.有鉴于此,本发明实施例提供一种代码合并方法、装置及相关设备,以实现减少人力干预和保持版本持续可用的目的。4.为实现上述目的,本发明实施例提供如下技术方案:5.本发明实施例第一方面公开了一种代码合并方法,所述方法包括:6.获取两段代码;7.逐行比对所述两段代码,得到比对结果;8.根据所述比对结果,确定所述两段代码的不同的合并提交版本,并对所述不同的合并提交版本进行单元测试,得到合并后的n种可能性版本,n为正整数;9.根据所述合并后的n种可能性版本,对所述合并后的n种可能性版本进行集成测试,得到最终的可能性版本;10.根据所述最终的可能性版本,选择可持续运行代码,并合并所述可持续运行代码。11.可选的,所述逐行比对所述两段代码,得到比对结果,包括:12.逐行比对所述两段代码的启动时间,得到比对结果。13.可选的,所述逐行比对所述两段代码的启动时间,得到比对结果,包括:14.若所述两段代码存在提交记录的版本,确定所述提交记录的版本的时间戳;15.比较所述提交记录的版本的时间戳,得到比对结果。16.可选的,所述根据所述比对结果,确定所述两段代码的不同的合并提交版本,并对所述不同的合并提交版本进行单元测试,得到合并后的n种可能性版本,包括:17.根据所述比对结果,对所述两段代码开展不同的合并提交版本,并分别进行标记;18.调用最新单元测试模块,测试不同的所述合并提交版本;19.若测试无误,确定合并后的n种可能性版本。20.可选的,所述根据所合并后的n种可能性版本,对合并后的n种可能性版本进行集成测试,得到最终的可能性版本,包括:21.对合并后的n种可能性版本进行集成测试;22.若测试通过,确定通过测试的可能性版本的数量;23.若所述通过测试的可能性版本的数量为1,将所述通过测试的可能性版本确定为合并后版本;24.若所述通过测试的可能性版本的数量大于1,按照所述合并后的n种可能性版本的时间戳,选择最新可能性版本进行二次标记。25.可选的,所述根据所述最终的可能性版本,选择可持续运行代码,并合并所述可持续运行代码,包括:26.获取所述二次标记的最新可能性版本,并合并所述二次标记的最新可能性版本。27.本发明实施例第二方面公开了一种代码合并装置,所述装置包括:28.获取模块,用于获取两段代码;29.比对模块,用于逐行比对所述两段代码,得到比对结果;30.单元测试模块,用于根据所述比对结果,确定所述两段代码的不同的合并提交版本,并对所述不同的合并提交版本进行单元测试,得到合并后的n种可能性版本,n为正整数;31.集成测试模块,用于根据所述合并后的n种可能性版本,对所述合并后的n种可能性版本进行集成测试,得到最终的可能性版本;32.合并模块,用于根据所述最终的可能性版本,选择可持续运行代码,并合并所述可持续运行代码。33.可选的,所述比对模块,具体用于:34.逐行比对所述两段代码的启动时间,得到比对结果。35.本发明实施例第三方面公开了一种电子设备,所述电子设备包括处理器;36.所述存储器,用于存储计算机程序;37.所述处理器,用于调用并执行所述存储器中存储的计算机程序时,实现如本发明实施例第一方面中任一项所述的代码合并方法。38.本发明实施例第四方面公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如本发明实施例第一方面中任一项所述的代码合并方法。39.基于上述本发明实施例提供的一种代码合并方法、装置及相关设备,所述方法包括:获取两段代码;逐行比对所述两段代码,得到比对结果;根据所述比对结果,确定所述两段代码的不同的合并提交版本,并对所述不同的合并提交版本进行单元测试,得到合并后的n种可能性版本,n为正整数;根据所述合并后的n种可能性版本,对所述合并后的n种可能性版本进行集成测试,得到最终的可能性版本;根据所述最终的可能性版本,选择可持续运行代码,并合并所述可持续运行代码。在本方案中,当对获取的两段代码进行比对、单元测试和集成测试完成代码合并的检测后,选择可持续运行代码完成合并,从而减少人力干预和保持版本持续可用。附图说明40.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。41.图1为本发明实施例提供的一种代码合并方法的流程示意图;42.图2为本发明实施例提供的一种单元测试的流程示意图;43.图3为本发明实施例提供的一种集成测试的流程示意图;44.图4为本发明实施例提供的一种代码合并装置的结构示意图;45.图5为本发明实施例提供的一种电子设备50的结构示意图。具体实施方式46.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。47.在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。48.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。49.本发明提供的代码合并方法、装置及相关设备可用于金融领域或其他领域,例如,可用于金融领域中的代码合并应用场景。其他领域为除金融领域之外的任意领域,例如,代码测试领域。上述仅为示例,并不对本发明提供的代码合并方法、装置及相关设备的应用领域进行限定。50.由背景技术可知,现有的手工合并代码方式需要人工判断,耗费人力,且容易出错,仅依靠提交时间判断并不严谨。51.因此,本发明实施例提供一种代码合并方法、装置及相关设备,在本方案中,当对获取的两段代码进行比对、单元测试和集成测试完成代码合并的检测后,选择可持续运行代码完成合并,从而减少人力干预和保持版本持续可用。52.如图1所示,为本发明实施例提供的一种代码合并方法的流程示意图。53.该代码合并方法主要包括以下步骤:54.步骤s101:获取两段代码。55.在具体实现步骤s101的过程中,当遇到两段代码同一位置的代码差异时,获取这两段代码,或者说,获取两个分支/版本包的代码。56.步骤s102:逐行比对两段代码,得到比对结果。57.在具体实现步骤s102的过程中,逐行比对这两段代码,找出存在差异的代码,进而得到比对结果。58.可选的,在一具体实施例中,逐行比对两段代码的启动时间,得到比对结果。59.可选的,在另一具体实施例中,若两段代码存在提交记录的版本,确定提交记录的版本的时间戳;比较提交记录的版本的时间戳,得到比对结果。60.步骤s103:根据比对结果,确定两段代码的不同的合并提交版本,并对不同的合并提交版本进行单元测试,得到合并后的n种可能性版本。61.在步骤s103中,n为正整数。62.在具体实现步骤s103的过程中,根据比对结果,先确定两段代码的不同的合并提交版本,然后对两段代码的不同的合并提交版本进行单元测试,也就是说,在找到这两段代码中的差异代码后,根据差异代码,确定两段代码的不同的合并提交版本,再根据不同的合并提交版本,对不同的合并提交版本进行单元测试,得到合并后的n种可能性版本,即得到单元测试结果。63.可选的,执行步骤s103根据比对结果,确定两段代码的不同的合并提交版本,并对不同的合并提交版本进行单元测试,得到合并后的n种可能性版本的过程,如图2所示,为本发明实施例提供的一种单元测试的流程示意图,主要包括以下步骤:64.步骤s201:根据比对结果,对两段代码开展不同的合并提交版本,并分别进行标记。65.在具体实现步骤s201的过程中,根据得到的比对结果,在找到这两段代码中的差异代码后,对两段代码中的差异代码开展不同的合并提交版本,并对不同的合并提交版本分别进行标记,得到标记后的不同合并提交版本。66.步骤s202:调用最新单元测试模块,测试不同的合并提交版本。67.在具体实现步骤s202的过程中,调用最新单元测试模块,对标记后的不同合并提交版本进行测试。68.步骤s203:判断测试是否无误,若是,执行步骤s204,若否,返回执行步骤s202。69.在具体实现步骤s203的过程中,判断测试是否无误,若是,执行步骤s204,若否,说明测试出现错误,需要重新进行单元测试,则返回执行步骤s202。70.步骤s204:确定合并后的n种可能性版本。71.在具体实现步骤s204的过程中,在确定测试不同的合并提交版本无误的情况下,确定合并后的n种可能性版本。72.步骤s104:根据合并后的n种可能性版本,对合并后的n种可能性版本进行集成测试,得到最终的可能性版本。73.在具体实现步骤s104的过程中,根据得到的单元测试结果,进行集成测试,也就是说,根据得到的合并后的n种可能性版本,对合并后的n种可能性版本进行集成测试,得到最终的可能性版本,即得到集成测试结果。74.可选的,执行步骤s104根据合并后的n种可能性版本,对合并后的n种可能性版本进行集成测试,得到最终的可能性版本的过程,如图3所示,为本发明实施例提供的一种集成测试的流程示意图,主要包括以下步骤:75.步骤s301:对合并后的n种可能性版本进行集成测试。76.在具体实现步骤s301的过程中,根据得到的单元测试结果,即根据得到的合并后的n种可能性版本,对合并后的n种可能性版本进行集成测试。77.步骤s302:判断测试是否通过,若是,执行步骤s303,若否,返回执行步骤s301。78.在具体实现步骤s302的过程中,判断测试是否通过,若是,执行步骤s303,若否,说明测试出现错误,需要重新进行集成测试,则返回执行步骤s301。79.步骤s303:确定通过测试的可能性版本的数量。80.在具体实现步骤s303的过程中,在确定合并后的n种可能性版本通过集成测试的情况下,确定通过测试的可能性版本的数量。81.步骤s304:判断通过测试的可能性版本的数量是否等于1,若是,执行步骤s305,若否,执行步骤s306。82.在具体实现步骤s304的过程中,判断通过测试的可能性版本的数量是否等于1,若是,执行步骤s305,若否,说明通过测试的可能性版本的数量可能为0,也可能大于1,则执行步骤s306。83.步骤s305:将通过测试的可能性版本确定为合并后版本。84.在具体实现步骤s305的过程中,在确定通过测试的可能性版本的数量等于1的情况下,将通过测试的可能性版本确定为合并后版本。85.步骤s306:判断通过测试的可能性版本的数量是否大于1,若是,执行步骤s307,若否,结束操作。86.在具体实现步骤s306的过程中,在确定通过测试的可能性版本的数量不等于1的情况下,判断通过测试的可能性版本的数量大于1,若是,执行步骤s307,若否,说明通过测试的可能性版本的数量既不等于1,也不大于1,也就是说明通过测试的可能性版本的数量为0,则结束操作。87.步骤s307:按照合并后的n种可能性版本的时间戳,选择最新可能性版本进行二次标记。88.在具体实现步骤s307的过程中,在确定通过测试的可能性版本的数量大于1的情况下,确定合并后的n种可能性版本的时间戳,并按照合并后的n种可能性版本的时间戳,选择最新可能性版本进行二次标记。89.步骤s105:根据最终的可能性版本,选择可持续运行代码,并合并可持续运行代码。90.在具体实现步骤s105的过程中,根据得到的集成测试结果,即根据得到的最终的可能性版本,选择可持续运行代码,即根据选择的二次标记的最新可能性版本,选择可持续运行代码,并对可持续运行代码进行合并。91.可选的,在一具体实施例中,获取二次标记的最新可能性版本,并合并二次标记的最新可能性版本。92.基于上述说明内容,可以理解的是,当遇到两段代码同一位置的代码差异时,进行启动时间比对、单元测试和集成测试,完成代码合并的检测,最终选择可持续运行代码完成合并。93.通过比对模块获取两个分支/版本包的代码,逐行比对,对于有提交记录的版本比较时间戳,然后进入合并模块,该模块调用单元测试模块,进行合并测试。对不同的代码开展不同的合并提交版本并进行标记,后调用最新的单元测试,如测试无误,开始进入集成测试模块。将合并后的n种可能性版本开展全流程自动化功能测试,通过测试的版本如果有1个,即为合并后版本,如果多个,则按照时间戳选择最新版本进行二次标记。通过合并模块,将获得二次标记的版本进行自动化合并。94.基于本发明实施例提供的一种代码合并方法,通过获取两段代码;逐行比对两段代码,得到比对结果;根据比对结果,确定两段代码的不同的合并提交版本,并对不同的合并提交版本进行单元测试,得到合并后的n种可能性版本,n为正整数;根据合并后的n种可能性版本,对合并后的n种可能性版本进行集成测试,得到最终的可能性版本;根据最终的可能性版本,选择可持续运行代码,并合并可持续运行代码。在本方案中,当对获取的两段代码进行比对、单元测试和集成测试完成代码合并的检测后,选择可持续运行代码完成合并,从而减少人力干预和保持版本持续可用。95.与上述本发明实施例示出的一种代码合并方法相对应,本发明实施例还对应提供了一种代码合并装置,如图4所示,该代码合并装置包括:获取模块41、比对模块42、单元测试模块43、集成测试模块44和合并模块45。96.获取模块41,用于获取两段代码。97.比对模块42,用于逐行比对两段代码,得到比对结果。98.单元测试模块43,用于根据比对结果,确定两段代码的不同的合并提交版本,并对不同的合并提交版本进行单元测试,得到合并后的n种可能性版本。99.其中,n为正整数。100.集成测试模块44,用于根据合并后的n种可能性版本,对合并后的n种可能性版本进行集成测试,得到最终的可能性版本。101.合并模块45,用于根据最终的可能性版本,选择可持续运行代码,并合并可持续运行代码。102.可选的,基于上述图4示出的比对模块42,所述比对模块42,具体用于:103.逐行比对两段代码的启动时间,得到比对结果。104.可选的,基于上述图4示出的比对模块42,所述比对模块42,还具体用于:105.若两段代码存在提交记录的版本,确定提交记录的版本的时间戳;比较提交记录的版本的时间戳,得到比较结果。106.可选的,基于上述图4示出的单元测试模块43,所述单元测试模块43,包括:107.开展单元,用于根据比对结果,对两段代码开展不同的合并提交版本,并分别进行标记。108.测试单元,用于调用最新单元测试模块,测试不同的合并提交版本。109.确定单元,用于若测试无误,确定合并后的n种可能性版本。110.可选的,基于上述图4示出的集成测试模块44,所述集成测试模块44,包括:111.集成测试单元,用于对合并后的n种可能性版本进行集成测试。112.第一确定单元,用于若测试通过,确定通过测试的可能性版本的数量。113.第二确定单元,用于若通过测试的可能性版本的数量为1,将通过测试的可能性版本确定为合并后版本。114.选择单元,用于若通过测试的可能性版本的数量大于1,按照合并后的n种可能性版本的时间戳,选择最新可能性版本进行二次标记。115.可选的,基于上述图4示出的合并模块45,所述合并模块45,具体用于:116.获取二次标记的最新可能性版本,并合并二次标记的最新可能性版本。117.需要说明的是,上述本发明实施例公开的代码合并装置中的各个模块具体的原理和执行过程,与上述本发明实施代码合并方法相同,可参见上述本发明实施例公开的代码合并方法中相应的部分,这里不再进行赘述。118.基于本发明实施例提供的一种代码合并装置,通过获取两段代码;逐行比对两段代码,得到比对结果;根据比对结果,确定两段代码的不同的合并提交版本,并对不同的合并提交版本进行单元测试,得到合并后的n种可能性版本,n为正整数;根据合并后的n种可能性版本,对合并后的n种可能性版本进行集成测试,得到最终的可能性版本;根据最终的可能性版本,选择可持续运行代码,并合并可持续运行代码。在本方案中,当对获取的两段代码进行比对、单元测试和集成测试完成代码合并的检测后,选择可持续运行代码完成合并,从而减少人力干预和保持版本持续可用。119.基于上述本发明实施例公开的代码合并装置,上述各个模块可以通过一种由处理器和存储器构成的硬件设备实现。具体为上述各个模块作为程序单元存储于存储器中,由处理器执行存储在存储器中的上述程序单元来实现代码合并。120.其中,处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现代码合并。121.本发明实施例提供了一种计算机存储介质,存储介质包括存储代码合并程序,其中,程序被处理器执行时实现如上述方法实施例中任一项的代码合并方法。122.本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述方法实施例公开的代码合并方法。123.本发明实施例提供了一种电子设备,如图5所示,为本发明实施例提供的一种电子设备50的结构示意图。124.本发明实施例中的电子设备可以是服务器、pc、pad、手机等。125.该电子设备包括至少一个处理器501,以及与处理器连接的至少一个存储器502,以及总线503。126.处理器501、存储器502通过总线503完成相互间的通信。处理器501,用于执行存储器502中存储的程序。127.存储器502,用于存储程序,该程序至少用于:获取两段代码;逐行比对两段代码,得到比对结果;根据比对结果,确定两段代码的不同的合并提交版本,并对不同的合并提交版本进行单元测试,得到合并后的n种可能性版本,n为正整数;根据合并后的n种可能性版本,对合并后的n种可能性版本进行集成测试,得到最终的可能性版本;根据最终的可能性版本,选择可持续运行代码,并合并可持续运行代码。128.本技术还提供了一种计算机程序产品,当在电子设备上执行时,适于执行初始化有如下方法步骤的程序:129.获取两段代码;逐行比对两段代码,得到比对结果;根据比对结果,确定两段代码的不同的合并提交版本,并对不同的合并提交版本进行单元测试,得到合并后的n种可能性版本,n为正整数;根据合并后的n种可能性版本,对合并后的n种可能性版本进行集成测试,得到最终的可能性版本;根据最终的可能性版本,选择可持续运行代码,并合并可持续运行代码。130.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。131.在一个典型的配置中,设备包括一个或多个处理器(cpu)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。132.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。133.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。134.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。135.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。136.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部