CN116400956A - 一种代码合并信息确定方法、装置、电子设备及存储介质 - Google Patents

一种代码合并信息确定方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116400956A
CN116400956A CN202310424000.3A CN202310424000A CN116400956A CN 116400956 A CN116400956 A CN 116400956A CN 202310424000 A CN202310424000 A CN 202310424000A CN 116400956 A CN116400956 A CN 116400956A
Authority
CN
China
Prior art keywords
branch
determined
branches
slave
main
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
CN202310424000.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.)
Shanghai Dameng Database Co Ltd
Original Assignee
Shanghai Dameng Database 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 Shanghai Dameng Database Co Ltd filed Critical Shanghai Dameng Database Co Ltd
Priority to CN202310424000.3A priority Critical patent/CN116400956A/zh
Publication of CN116400956A publication Critical patent/CN116400956A/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
    • 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)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种代码合并信息确定方法、装置、电子设备及存储介质。所述方法包括:获取所有主分支的第一合并信息,所述第一合并信息指示所对应主分支和合并入所对应主分支的从分支;确定待确定从分支;根据所述待确定从分支和所述第一合并信息,确定所述待确定从分支的第二合并信息,所述第二合并信息指示所述待确定从分支和所述待确定从分支已合并入的待确定主分支,所述待确定主分支为所述待确定从分支合并入的主分支。上述技术方案,通过待确定从分支和所有主分支的第一合并信息,可以确定待确定从分支的第二合并信息,即实现了从分支的合并信息的确定,便于实现对程序开发管理的整体把控。

Description

一种代码合并信息确定方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种代码合并信息确定方法、装置、电子设备及存储介质。
背景技术
在代码研发的过程中,会涉及到代码的多个分支,可以将当前提交的分支作为从分支,将该从分支合并入的分支作为该从分支对应的主分支。通过版本控制系统,如Subversion(简称SVN),可以实现分支合并的功能,即将从分支的提交操作同步到主分支。
在现有技术中,可以通过SVN查看主分支的合并情况,即查看主分支的代码是由哪个从分支合并而来的,但不能查看从分支中修改的内容被合并至哪个主分支中,而出于对程序开发管理整体把控的需要,开发者和质量管理部门不仅对查看主分支的合并情况有需求,也需要能查看从分支的合并情况,如从分支合并至了哪个主分支、该主分支的版本号以及该从分支至主分支的合并路线。
发明内容
本发明提供了一种代码合并信息确定方法、装置、电子设备及存储介质,可以确定从分支的合并信息,便于实现对程序开发管理的整体把控。
第一方面,本发明实施例提供了一种代码合并信息确定方法,包括:
获取所有主分支的第一合并信息,所述第一合并信息指示所对应主分支和合并入所对应主分支的从分支;
确定待确定从分支;
根据所述待确定从分支和所述第一合并信息,确定所述待确定从分支的第二合并信息,所述第二合并信息指示所述待确定从分支和所述待确定从分支已合并入的待确定主分支,所述待确定主分支为所述待确定从分支合并入的主分支。
第二方面,本发明实施例提供了一种代码合并信息确定装置,包括:
获取模块,用于获取所有主分支的第一合并信息,所述第一合并信息指示所对应主分支和合并入所对应主分支的从分支;
第一确定模块,用于确定待确定从分支;
第二确定模块,用于根据所述待确定从分支和所述第一合并信息,确定所述待确定从分支的第二合并信息,所述第二合并信息指示所述待确定从分支和所述待确定从分支已合并入的待确定主分支,所述待确定主分支为所述待确定从分支合并入的主分支。
第三方面,本发明实施例提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的方法。
本发明实施例的技术方案,首先获取所有主分支的第一合并信息,第一合并信息指示所对应主分支和合并入所对应主分支的从分支;然后确定待确定从分支;最后根据待确定从分支和第一合并信息,确定待确定从分支的第二合并信息,第二合并信息指示待确定从分支和待确定从分支已合并入的待确定主分支。上述技术方案,通过待确定从分支和所有主分支的第一合并信息,可以确定待确定从分支的第二合并信息,即实现了从分支的合并信息的确定,便于实现对程序开发管理的整体把控。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种代码合并信息确定方法的流程图;
图2是根据本发明实施例二提供的一种代码合并信息确定方法的流程图;
图3是根据本发明实施例二提供的另一种代码合并信息确定方法的流程图;
图4是根据本发明实施例三提供的一种分析SVN合并信息的方法的流程图;
图5是根据本发明实施例三提供的一种组织多叉树数据结构的流程图;
图6是根据本发明实施例四提供的一种代码合并信息确定装置的结构示意图;
图7是实现本发明实施例的代码合并信息确定方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
可以理解的是,在使用本发明各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围以及使用场景等告知用户并获得用户的授权。
实施例一
图1是根据本发明实施例一提供的一种代码合并信息确定方法的流程图,本实施例可适用于对从分支的合并信息进行确定的情况,该方法可以由代码合并信息确定装置来执行,该装置可以采用软件和/或硬件的形式实现,并集成在电子设备中。进一步的,电子设备包括但不限定于:计算机、笔记本电脑、智能手机、服务器等。如图1所示,该方法包括:
S110、获取所有主分支的第一合并信息,第一合并信息指示所对应主分支和合并入所对应主分支的从分支。
在代码研发的过程中,会涉及到代码的多个分支,可以将当前提交的分支作为从分支,将该从分支合并入的分支作为该从分支对应的主分支。通过版本控制系统,如Subversion(简称SVN),可以实现分支合并的功能,即将从分支的提交操作同步到主分支。其中,SVN可以集成在电子设备上,SVN可以有很多客户端工具,通过客户端工具可以方便管理和查看SVN仓库中所保存的内容。
第一合并信息指示所对应主分支和合并入所对应主分支的从分支,如第一合并信息可以包括所有主分支中各主分支的分支路径、各主分支的分支版本号、各主分支所对应从分支的分支路径和各主分支所对应从分支的分支版本号。
其中,分支路径可以通过统一资源定位符(Uniform Resource Locator,URL)表示,URL可以是对从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址,互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎处理它。分支版本号可以是该分支代码提交时的版本号,可以根据实际应用需要设定分支版本号,具体不作限定。
对第一合并信息的形式不作限定,如第一合并信息可以被保存为表格的形式,在表格中可以有多个行,每一行可以表示一个主分支是由对应的一个从分支合并来的,表格中的列可以分别对应各主分支的分支路径、各主分支的分支版本号、各主分支所对应从分支的分支路径和各主分支所对应从分支的分支版本号。
在SVN的仓库中,可以保存代码研发过程中的多个分支(如所有主分支和所有从分支),在需要获取主分支的第一合并信息时,可以通过SVN的接口遍历仓库中保存的所有分支,通过该接口可以查看各主分支是从哪个从分支合并而来的,则该接口会自动获取SVN仓库中所有主分支的第一合并信息。
S120、确定待确定从分支。
其中,待确定从分支是需要确定第二合并信息的从分支,即需要确定待确定从分支合并入哪个主分支中。
确定待确定从分支的方式不作限定,如可以响应于用户在输入界面中输入从分支的分支路径和分支版本号的操作,将通过输入操作获取的从分支的分支路径和分支版本号与第一合并信息作比较,若第一合并信息中有从分支的分支路径和分支版本号与用户输入的从分支相同,则可以将用户通过输入操作输入的从分支确定为待确定从分支;又如,可以将第一合并信息指示的合并入所对应主分支的任一从分支,确定为待确定从分支。
需要说明的是,步骤S110和S120的执行顺序不作限定,如可以并行执行或顺序执行,只要能够确定待确定从分支和所有主分支的第一合并信息即可。
S130、根据待确定从分支和第一合并信息,确定待确定从分支的第二合并信息,第二合并信息指示待确定从分支和待确定从分支已合并入的待确定主分支,待确定主分支为待确定从分支合并入的主分支。
待确定从分支的第二合并信息,指示待确定从分支和待确定从分支已合并入的待确定主分支,如第二合并信息包括待确定主分支的分支路径(即待确定从分支合并入的主分支的分支路径)、待确定主分支的分支版本号和合并路线,合并路线即为待确定从分支合并至待确定主分支时的路线。
根据待确定从分支和第一合并信息,确定待确定从分支的第二合并信息的方式不作限定,如可以根据待确定从分支的分支路径和分支版本号,与第一合并信息中与待确定从分支相关的信息进行整合,形成一种多叉树的数据结构,再根据该多叉树的数据结构,可以查询待确定从分支在SVN上提交的合并路线,进而为确定待确定从分支的第二合并信息提供支持。
具体的,可以根据待确定从分支的分支路径和分支版本号,与第一合并信息所包括的各主分支所对应从分支的分支路径和分支版本号相匹配,若确定第一合并信息中存在待确定从分支的分支路径和分支版本号,则可以根据第一合并信息确定待确定从分支合并入的待确定主分支的分支路径和分支版本号,进而确定合并路线,合并路线以多叉树的数据结构形式存在,由此可以通过这种数据结构实现待确定从分支的第二合并信息的确定。
本发明实施例的技术方案,首先获取所有主分支的第一合并信息,第一合并信息指示所对应主分支和合并入所对应主分支的从分支;然后确定待确定从分支;最后根据待确定从分支和第一合并信息,确定待确定从分支的第二合并信息,第二合并信息指示待确定从分支和待确定从分支已合并入的待确定主分支。上述技术方案,通过待确定从分支和所有主分支的第一合并信息,可以确定待确定从分支的第二合并信息,即实现了从分支的合并信息的确定,便于实现对程序开发管理的整体把控。
实施例二
图2是根据本发明实施例二提供的一种代码合并信息确定方法的流程图,本实施例是在上述实施例一的基础上的进一步细化,如图2所示,该方法包括:
S201、通过信息获取接口遍历所有分支,获取所有主分支的第一合并信息。
其中,信息获取接口为用于获取第一合并信息的接口,对信息获取接口不作限定,只要能够通过信息获取接口获取第一合并信息即可,如信息获取接口可以是SVN提供的相关接口。所有分支包括所有主分支和所有从分支,如SVN仓库中的所有分支路径,假设存在n个分支,则分支路径为:branch_1_path,…,branch_n_path。
在SVN的仓库中,可以保存代码研发过程中的所有分支,通过信息获取接口可以查看主分支的第一合并信息,但不能查看从分支的合并信息,即不能查看从分支合并入了哪个主分支。因此在需要获取主分支的第一合并信息时,可以通过信息获取接口遍历SVN仓库中的所有分支,使信息获取接口自动获取SVN仓库中所有主分支的第一合并信息。
S202、确定待确定从分支,待确定从分支根据第一合并信息指示的合并入所对应主分支的从分支确定。
确定待确定从分支的方式不作限定,如可以根据实际应用需要假设某一分支为待确定从分支,若该分支为第一合并信息指示的合并入所对应主分支的从分支中的一个,则可以将假设的某一分支确定为待确定从分支;又如,可以直接将第一合并信息指示的合并入所对应主分支的任一从分支,确定为待确定从分支。
S203、根据待确定从分支和第一合并信息,确定数据结构信息,数据结构信息指示待确定从分支合并入待确定主分支的合并路线中各分支所对应数据结构。
其中,各分支对应的数据结构可以包括该分支的分支路径和该分支的分支版本号,如当待确定从分支的分支路径为branch_m_path,待确定从分支的分支版本号为M时,通过node{url:branch_m_path,revision:M}可以表示待确定从分支的数据结构。
对于待确定从分支,可以通过一次或多次合并合并入对应的待确定主分支,如待确定从分支通过一次合并合并入对应的待确定主分支,再将该待确定主分支作为新的从分支,合并入新的从分支对应的待确定主分支,多次循环后即可有待确定从分支对应的多个待确定主分支,多个待确定主分支均可以看作待确定从分支合并入的主分支,且多个待确定主分支之间各分支的主从关系为相对的关系。其中,合并路线可以为待确定从分支合并至每个待确定主分支的路线,通过合并路线可以确定待确定从分支的数据结构和对应的每个待确定主分支的数据结构。
在根据待确定从分支和第一合并信息,确定数据结构信息时,可以通过该待确定从分支的分支路径和分支版本号,在第一合并信息所指示的各主分支所对应从分支的分支路径和分支版本号中查询与待确定从分支相关信息相同的从分支,进而通过相同的从分支在第一合并信息中确定该从分支对应的主分支的数据结构,该数据结构即为待确定主分支的数据结构。在多次合并时,可以将一次合并得到的待确定主分支作为新的从分支,再用上述方式在第一合并信息中确定与该新的从分支对应的待确定主分支的数据结构,进而确定待确定从分支合并至每个待确定主分支的合并路线中各分支所对应数据结构。
S204、根据数据结构信息,确定待确定从分支的第二合并信息。
根据数据结构信息,可以确定待确定从分支合并至每个待确定主分支的合并路线中各分支所对应数据结构,而各分支所对应数据结构中包括分支对应的分支路径和分支版本号,因此可以确定待确定从分支合并入的待确定主分支的分支路径、待确定主分支的分支版本号和待确定从分支合并入待确定主分支的合并路线,即确定待确定从分支的第二合并信息。
图3是根据本发明实施例二提供的另一种代码合并信息确定方法的流程图,图3是对上述步骤S203和S204的进一步细化,如图3所示,该方法包括:
S301、获取所有主分支的第一合并信息,第一合并信息指示所对应主分支和合并入所对应主分支的从分支。
S302、确定待确定从分支。
以下步骤S303到S306为对根据待确定从分支和第一合并信息,确定数据结构信息的进一步细化,其中,数据结构信息包括多叉树数据结构,第一合并信息包括所有主分支中各主分支的分支路径、各主分支的分支版本号、各主分支所对应从分支的分支路径和各主分支所对应从分支的分支版本号。
S303、将待确定从分支确定为当前分支。
将待确定从分支确定为当前分支,其中,当前分支即为当前需要确定对应待确定主分支的从分支。
S304、从第一合并信息中,查找当前分支对应的目标分支,目标分支的分支路径与当前分支的分支路径一致,目标分支的分支版本号与当前分支的分支版本号一致。
目标分支即为第一合并信息中所包括的从分支,目标分支与当前分支的数据结构相同,即目标分支的分支路径与当前分支的分支路径一致,目标分支的分支版本号与当前分支的分支版本号一致,以便后续通过目标分支在第一合并信息中确定目标分支对应的主分支,也即当前分支对应的待确定主分支。
S305、将目标分支所对应主分支确定为待确定从分支的待确定主分支。
目标分支的数据结构与当前分支的数据结构一致,若在第一合并信息中确定目标分支对应的主分支,则该主分支即为当前分支的待确定主分支,也即待确定从分支的待确定主分支。
S306、继续将目标分支所对应主分支作为新的当前分支,并执行查询新的当前分支的目标分支和基于新的当前分支的目标分支确定待确定主分支操作,直至满足循环结束条件。
继续将目标分支所对应主分支作为新的当前分支,即将目标分支所对应主分支作为新的需要确定对应待确定主分支的从分支,并执行查询新的当前分支的目标分支和基于新的当前分支的目标分支确定待确定主分支操作,即在第一合并信息中查询与新的当前分支的数据结构一致的目标分支,并在第一合并信息中查询目标分支对应的主分支,将查询到的主分支确定为待确定主分支,多次循环后即可有待确定从分支对应的多个待确定主分支,多个待确定主分支均可以看作待确定从分支合并入的主分支,且多个待确定主分支之间各分支的主从关系为相对的关系,直至满足循环结束条件。其中,循环结束条件包括目标分支不存在对应的主分支。
合并路线中各节点包括待确定从分支和各待确定主分支,各节点的数据结构包括所对应的分支路径和分支版本号。其中,合并路线可以为待确定从分支合并至每个待确定主分支的路线,通过合并路线可以确定待确定从分支的数据结构和对应的每个待确定主分支的数据结构。
以下步骤S307到S309为对根据数据结构信息,确定待确定从分支的第二合并信息的进一步细化,其中,第二合并信息包括待确定主分支的分支路径、待确定主分支的分支版本号和合并路线。
S307、根据数据结构信息构建多叉树,多叉树的根节点为待确定从分支,多叉树的子节点为各待确定主分支。
以待确定从分支作为多叉树的根节点,将该根节点作为第一父节点,可以将根节点看作多叉树的第一层,先将待确定从分支作为当前分支以确定当前分支对应的待确定主分支,则所确定的待确定主分支可以看作多叉树中第一父节点对应的子节点,第一父节点对应的子节点的个数可以为多个,这些子节点均为待确定从分支的待确定主分支,可以将这些子节点看作多叉树的第二层。其中,多叉树中的父节点均可以看作从分支,父节点对应的子节点均可以看作该从分支对应的主分支,即父节点对应的分支合并入了子节点对应的分支。
以多叉树的第二层中任一节点(即首次确定的任一待确定主分支)为第二父节点为例,继续确定第二父节点对应的子节点,即将第二父节点对应的待确定主分支作为新的当前分支,并执行查询新的当前分支的目标分支和基于新的当前分支的目标分支确定待确定主分支操作,确定第二父节点对应的子节点为基于新的当前分支的目标分支确定的待确定主分支,可以将基于新的当前分支的目标分支确定的待确定主分支看作多叉树的第三层。
继续执行上述循环操作,即不断确定多叉树中每个父节点对应的子节点,直至满足循环结束条件,即可根据数据结构信息构建多叉树,通过该多叉树可以确定待确定从分支合并入的待确定主分支,以及待确定从分支多次合并入的待确定主分支。其中,多叉树的根节点为待确定从分支,多叉树的子节点为各待确定主分支。
S308、遍历多叉树中的所有子节点,获取各子节点的数据结构所包括待确定主分支的分支路径和待确定主分支的分支版本号。
多叉树中的所有子节点即为待确定从分支对应的各待确定主分支,通过遍历多叉树中的所有子节点,即可获取各子节点的数据结构,即确定待确定从分支对应的各待确定主分支的分支路径和分支版本号。
S309、对于每个子节点,根据根节点的数据结构所包括待确定从分支的分支路径,和子节点的数据结构所包括待确定主分支的分支路径,确定待确定从分支到待确定主分支的合并路线。
多叉树中的每个子节点可以看作待确定从分支的一个待确定主分支,在多叉树的数据结构中,可以记录该待确定主分支的分支路径,再基于待确定从分支的分支路径,即可确定待确定从分支到该待确定主分支的合并路线。
在一个实施例中,多叉树中各子节点所对应待确定主分支的分支版本号,大于子节点所对应父节点对应分支的分支版本号;
各子节点的祖先节点与子节点的数据结构不同。
在多叉树中,父节点均可以看作从分支,父节点对应的子节点均可以看作该从分支对应的主分支,即父节点对应的分支合并入了子节点对应的分支,因此各子节点应为对应父节点对应的主分支,各子节点应满足子节点对应分支的分支版本号大于子节点所对应父节点对应分支的分支版本号。
各子节点的祖先节点与子节点的数据结构不同,即各子节点的父节点或各子节点的父节点的父节点等,与该子节点的数据结构不同,即与子节点的分支路径和分支版本号应不同。
本发明实施例的技术方案,通过信息获取接口获取所有主分支的第一合并信息,然后确定待确定从分支,最后根据待确定从分支和第一合并信息,形成一种多叉树的数据结构,通过这种数据结构,可以确定待确定从分支在SVN上提交的合并路线,进而确定待确定从分支的第二合并信息,即实现了从分支的合并信息的确定,便于实现对程序开发管理的整体把控。
实施例三
本发明实施例是对上述各实施例的示例性说明。
本发明实施例提供了一种分析SVN合并信息的方法,通过SVN接口获取SVN主分支的合并信息(即第一合并信息),将SVN的合并信息以表格形式进行存储;当选择获取某从分支(即待确定从分支)的合并路线时,对存储的与该从分支有关的合并信息进行整合,形成一种多叉树的数据结构;通过这种数据结构,用户可以清晰的查询到该从分支在SVN上提交的合并线路,进而对查看从分支的合并信息(即第二合并信息)提供支持。具体步骤如下:
步骤1:获取SVN仓库的所有分支路径,假设存在n个分支,分支路径为:branch_1_path,…,branch_n_path。
步骤2:遍历所有分支,获取合并(merge)信息(即通过信息获取接口遍历所有分支,获取所有主分支的第一合并信息)。获取合并信息可通过SVN提供的相关接口去实现,如java接口SVNLogClient.doLog。
对通过SVN提供的接口获得的合并信息进行处理,可得到如下信息:
当前分支合并到的目标分支路径,下文中以branch_y_path表示,可理解为主分支(即所有主分支中各主分支的分支路径);
当前分支合并到的目标分支的版本号,下文中以merged_revison表示(即所有主分支中各主分支的分支版本号);
提交分支路径,下文中以branch_x_path表示,branch_x_path可理解为从分支(即各主分支所对应从分支的分支路径);
提交分支的提交版本号,下文中以commit_revison表示(即各主分支所对应从分支的分支版本号)。
步骤3:将步骤2中获取到的合并信息以表的形式进行存储,表1所示为存储第一合并信息的格式。
表1存储第一合并信息的格式
列名 数据
source_path 步骤2中的branch_x_path,表示提交分支路径
source_revison 步骤2中的commit_revison,表示分支提交的版本号
target_path 步骤2中的branch_y_path,表示合并到的目标分支路径
target_revison 步骤2中的merged_revison,表示合并到的目标分支的版本号
步骤4:假设获取某一分支(branch_m_path)提交版本M(即待确定从分支,分支路径为branch_m_path,分支版本号为M)的合并路线,合并路线以多叉树的数据结构形式存在。
构成合并路线的多叉树节点(node)的数据结构为:
node:
Figure BDA0004188695910000141
其中,url为分支路径,revison表示提交版本号(即分支版本号)。
多叉树的遍历步骤(对应实施例二中步骤S303到S309):
1)根节点(即待确定从分支)为node{url:branch_m_path,revision:M},以根节点为父节点,即有parent_node{url:branch_m_path,revision:M}。
2)获取父节点parent_node的具体数据(即待确定从分支的分支路径和分支版本号);
读取步骤3中的数据,在合并信息表1中获取符合当前source_path值为parent_node.url,source_revison值为parent_node.revision的条件的所有结果,每条记录生成一个子节点child_node(即待确定主分支);
其中,child_node.url的值为表1中记录的对应的target_path,child_node.revision的值为表中记录的对应的target_revison。
满足以下条件的子节点为不合法节点:
a)child_node.revision<=parent_node.revision(即多叉树中各子节点所对应待确定主分支的分支版本号,应大于子节点所对应父节点对应分支的分支版本号,该子节点才为合法节点);
b)child_node的祖先节点与child_node有相同的数据结构(各子节点的祖先节点应与子节点的数据结构不同,该子节点才为合法节点)。
当本步骤中获取的child_node个数大于0时,执行3);若本步骤中获取的child_node个数为0,则结束遍历,得到的多叉树结果即为该分支提交版本M的合并路线。
3)以2)中的child_node作为父节点,执行2)。
得到多叉树后,可以进行以下操作获取所需的从分支合并信息(即待确定从分支的第二合并信息):
通过遍历多叉树的所有节点,可以获取从分支提交操作已合并到哪些分支和合并的分支版本号;
通过获取子节点和根节点的路径,可以获取从分支提交到某主分支的合并线路。
图4是根据本发明实施例三提供的一种分析SVN合并信息的方法的流程图,具体的:
获取SVN日志,通过对SVN日志进行分析获取SVN合并信息,读取合并信息并将其保存为表的形式(即获取所有主分支的第一合并信息);
获取SVN分支提交版本号(即确定待确定从分支);
根据SVN分支提交版本号和SVN合并信息,分析数据组织多叉树数据结构,并获取目标分支某提交版本的合并路线(即根据待确定从分支和第一合并信息,确定待确定从分支的第二合并信息);
结束流程。
图5是根据本发明实施例三提供的一种组织多叉树数据结构的流程图,具体的:
输入数据(从分支URL提交版本号),读取合并信息(即第一合并信息),生成根节点信息(待确定从分支的分支路径和分支版本号);
获取所有已合并信息(合法),并将合并信息作为子节点;
若子节点个数大于0,则将子节点作为父节点,继续执行获取所有已合并信息(合法),并将合并信息作为子节点的操作;若子节点个数等于0,则结束流程。
实施例四
图6是根据本发明实施例四提供的一种代码合并信息确定装置的结构示意图,本实施例可适用于对从分支的合并信息进行确定的情况。如图6所示,该装置的具体结构包括:
获取模块21,用于获取所有主分支的第一合并信息,第一合并信息指示所对应主分支和合并入所对应主分支的从分支;
第一确定模块22,用于确定待确定从分支;
第二确定模块23,用于根据待确定从分支和第一合并信息,确定待确定从分支的第二合并信息,第二合并信息指示待确定从分支和待确定从分支已合并入的待确定主分支,待确定主分支为待确定从分支合并入的主分支。
本实施例提供的代码合并信息确定装置,首先通过获取模块获取所有主分支的第一合并信息,第一合并信息指示所对应主分支和合并入所对应主分支的从分支;然后通过第一确定模块确定待确定从分支;最后通过第二确定模块根据待确定从分支和第一合并信息,确定待确定从分支的第二合并信息,第二合并信息指示待确定从分支和待确定从分支已合并入的待确定主分支,待确定主分支为待确定从分支合并入的主分支。
进一步的,第二确定模块23,具体用于:
根据待确定从分支和第一合并信息,确定数据结构信息,数据结构信息指示待确定从分支合并入待确定主分支的合并路线中各分支所对应数据结构;
根据数据结构信息,确定待确定从分支的第二合并信息。
进一步的,数据结构信息包括多叉树数据结构,第一合并信息包括所有主分支中各主分支的分支路径、各主分支的分支版本号、各主分支所对应从分支的分支路径和各主分支所对应从分支的分支版本号,相应的,第二确定模块23,具体用于:
将待确定从分支确定为当前分支;
从第一合并信息中,查找当前分支对应的目标分支,目标分支的分支路径与当前分支的分支路径一致,目标分支的分支版本号与当前分支的分支版本号一致;
将目标分支所对应主分支确定为待确定从分支的待确定主分支;
继续将目标分支所对应主分支作为新的当前分支,并执行查询新的当前分支的目标分支和基于新的当前分支的目标分支确定待确定主分支操作,直至满足循环结束条件;
合并路线中各节点包括待确定从分支和各待确定主分支,各节点的数据结构包括所对应的分支路径和分支版本号;
其中,循环结束条件包括目标分支不存在对应的主分支。
进一步的,第二合并信息包括待确定主分支的分支路径、待确定主分支的分支版本号和合并路线,相应的,第二确定模块23,具体用于:
根据数据结构信息构建多叉树,多叉树的根节点为待确定从分支,多叉树的子节点为各待确定主分支;
遍历多叉树中的所有子节点,获取各子节点的数据结构所包括待确定主分支的分支路径和待确定主分支的分支版本号;
对于每个子节点,根据根节点的数据结构所包括待确定从分支的分支路径,和子节点的数据结构所包括待确定主分支的分支路径,确定待确定从分支到待确定主分支的合并路线。
进一步的,多叉树中各子节点所对应待确定主分支的分支版本号,大于子节点所对应父节点对应分支的分支版本号;
各子节点的祖先节点与子节点的数据结构不同。
进一步的,获取模块21,具体用于:
通过信息获取接口遍历所有分支,获取所有主分支的第一合并信息;
其中,信息获取接口为用于获取第一合并信息的接口;所有分支包括所有主分支和所有从分支。
进一步的,第一确定模块22,具体用于:
确定待确定从分支,待确定从分支根据第一合并信息指示的合并入所对应主分支的从分支确定。
本发明实施例所提供的代码合并信息确定装置可执行本发明任意实施例所提供的代码合并信息确定方法,具备执行方法相应的功能模块和有益效果。
实施例五
图7是实现本发明实施例的代码合并信息确定方法的电子设备的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图7所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如代码合并信息确定方法。
在一些实施例中,代码合并信息确定方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的代码合并信息确定方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行代码合并信息确定方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种代码合并信息确定方法,其特征在于,包括:
获取所有主分支的第一合并信息,所述第一合并信息指示所对应主分支和合并入所对应主分支的从分支;
确定待确定从分支;
根据所述待确定从分支和所述第一合并信息,确定所述待确定从分支的第二合并信息,所述第二合并信息指示所述待确定从分支和所述待确定从分支已合并入的待确定主分支,所述待确定主分支为所述待确定从分支合并入的主分支。
2.根据权利要求1所述的方法,其特征在于,根据所述待确定从分支和所述第一合并信息,确定所述待确定从分支的第二合并信息,包括:
根据所述待确定从分支和所述第一合并信息,确定数据结构信息,所述数据结构信息指示所述待确定从分支合并入所述待确定主分支的合并路线中各分支所对应数据结构;
根据所述数据结构信息,确定所述待确定从分支的第二合并信息。
3.根据权利要求2所述的方法,其特征在于,所述数据结构信息包括多叉树数据结构,所述第一合并信息包括所有主分支中各主分支的分支路径、各主分支的分支版本号、各主分支所对应从分支的分支路径和各主分支所对应从分支的分支版本号,相应的,根据所述待确定从分支和所述第一合并信息,确定数据结构信息,包括:
将所述待确定从分支确定为当前分支;
从所述第一合并信息中,查找所述当前分支对应的目标分支,所述目标分支的分支路径与所述当前分支的分支路径一致,所述目标分支的分支版本号与所述当前分支的分支版本号一致;
将所述目标分支所对应主分支确定为所述待确定从分支的待确定主分支;
继续将所述目标分支所对应主分支作为新的当前分支,并执行查询所述新的当前分支的目标分支和基于所述新的当前分支的目标分支确定待确定主分支操作,直至满足循环结束条件;
所述合并路线中各节点包括所述待确定从分支和各所述待确定主分支,各所述节点的数据结构包括所对应的分支路径和分支版本号;
其中,所述循环结束条件包括所述目标分支不存在对应的主分支。
4.根据权利要求2所述的方法,其特征在于,所述第二合并信息包括所述待确定主分支的分支路径、所述待确定主分支的分支版本号和所述合并路线,相应的,根据所述数据结构信息,确定所述待确定从分支的第二合并信息,包括:
根据所述数据结构信息构建多叉树,所述多叉树的根节点为所述待确定从分支,所述多叉树的子节点为各所述待确定主分支;
遍历所述多叉树中的所有子节点,获取各子节点的数据结构所包括待确定主分支的分支路径和待确定主分支的分支版本号;
对于每个所述子节点,根据根节点的数据结构所包括待确定从分支的分支路径,和所述子节点的数据结构所包括待确定主分支的分支路径,确定待确定从分支到待确定主分支的合并路线。
5.根据权利要求4所述的方法,其特征在于,
所述多叉树中各子节点所对应待确定主分支的分支版本号,大于所述子节点所对应父节点对应分支的分支版本号;
各所述子节点的祖先节点与所述子节点的数据结构不同。
6.根据权利要求1所述的方法,其特征在于,获取所有主分支的第一合并信息,包括:
通过信息获取接口遍历所有分支,获取所有主分支的第一合并信息;
其中,所述信息获取接口为用于获取第一合并信息的接口;所述所有分支包括所有主分支和所有从分支。
7.根据权利要求1所述的方法,其特征在于,确定待确定从分支,包括:
确定待确定从分支,所述待确定从分支根据所述第一合并信息指示的合并入所对应主分支的从分支确定。
8.一种代码合并信息确定装置,其特征在于,包括:
获取模块,用于获取所有主分支的第一合并信息,所述第一合并信息指示所对应主分支和合并入所对应主分支的从分支;
第一确定模块,用于确定待确定从分支;
第二确定模块,用于根据所述待确定从分支和所述第一合并信息,确定所述待确定从分支的第二合并信息,所述第二合并信息指示所述待确定从分支和所述待确定从分支已合并入的待确定主分支,所述待确定主分支为所述待确定从分支合并入的主分支。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-7中任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。
CN202310424000.3A 2023-04-19 2023-04-19 一种代码合并信息确定方法、装置、电子设备及存储介质 Pending CN116400956A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310424000.3A CN116400956A (zh) 2023-04-19 2023-04-19 一种代码合并信息确定方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310424000.3A CN116400956A (zh) 2023-04-19 2023-04-19 一种代码合并信息确定方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116400956A true CN116400956A (zh) 2023-07-07

Family

ID=87014038

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310424000.3A Pending CN116400956A (zh) 2023-04-19 2023-04-19 一种代码合并信息确定方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116400956A (zh)

Similar Documents

Publication Publication Date Title
CN112258244A (zh) 确定目标物品所属任务的方法、装置、设备及存储介质
CN115905322A (zh) 业务处理方法、装置、电子设备及存储介质
CN116361591A (zh) 内容审核方法、装置、电子设备及计算机可读存储介质
CN114168119B (zh) 代码文件编辑方法、装置、电子设备以及存储介质
CN116185389A (zh) 一种代码生成方法、装置、电子设备及介质
CN115328917A (zh) 一种查询方法、装置、设备及存储介质
CN111026629A (zh) 一种测试脚本自动生成的方法和装置
CN115454971A (zh) 数据迁移方法、装置、电子设备及存储介质
CN116400956A (zh) 一种代码合并信息确定方法、装置、电子设备及存储介质
CN113641628A (zh) 数据质量检测方法、装置、设备及存储介质
CN118133794B (zh) 一种表格配置方法、装置、设备及存储介质
CN117573561B (zh) 一种自动化测试系统、方法、电子设备和存储介质
CN117492822B (zh) 变更对比方法、装置、电子设备及存储介质
CN115983222A (zh) 基于EasyExcel的文件数据读取方法、装置、设备及介质
CN116991825A (zh) 一种数据库闪回方法、装置、设备及存储介质
CN115454977A (zh) 一种数据迁移方法、装置、设备和存储介质
CN117520395A (zh) 一种port关联缺失筛查方法、装置、设备及存储介质
CN115827588A (zh) 一种业务全局流水号的生成方法、装置、设备和存储介质
CN115495368A (zh) 数据测试方法、装置及电子设备
CN118819495A (zh) 一种数组处理方法、装置、设备及介质
CN117453747A (zh) 一种数据质量检测方法、装置、电子设备及存储介质
CN118467579A (zh) 一种数据库结构处理方法、装置、设备及存储介质
CN116303578A (zh) 一种查询表达式处理方法、装置、设备及存储介质
CN117742686A (zh) 程序源代码文件生成方法、装置、电子设备及存储介质
CN115687282A (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