对象管理方法及装置
文献发布时间:2023-06-19 11:39:06
技术领域
本申请涉及计算机技术领域,特别涉及一种对象管理方法。本申请同时涉及一种对象管理装置,一种计算设备,以及一种计算机可读存储介质。
背景技术
随着互联网的发展,针对项目的更新需求越来越复杂,也越来越频繁,因此针对一个项目上线时可能会有很多更新功能一起上线,而不同的更新功能对应不同的代码分支,而上线时,需要对多个代码分支进行合并才能上线,目前通过手动合并多个代码分支时会出现代码分支遗漏的情况,且需要耗费人力成本进行版本控制。
发明内容
有鉴于此,本申请实施例提供了一种对象管理方法。本申请同时涉及一种对象管理装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的代码分支合并过程中代码分支遗漏以及需要耗费大量人力成本进行版本控制的缺陷。
根据本申请实施例的第一方面,提供了一种对象管理方法,包括:
接收针对项目子对象的合并请求,响应于所述合并请求确定用户在对象管理平台确定的对象管理信息;
将所述对象管理信息对应的项目子对象以及与所述项目子对象关联的初始项目对象进行合并,以生成目标项目对象,其中,所述项目子对象是从所述初始项目对象中迁出的。
根据本申请实施例的第二方面,提供了一种对象管理装置,包括:
接收模块,被配置为接收针对项目子对象的合并请求,响应于所述合并请求确定用户在对象管理平台确定的对象管理信息;
合并模块,被配置为将所述对象管理信息对应的项目子对象以及与所述项目子对象关联的初始项目对象进行合并,以生成目标项目对象,其中,所述项目子对象是从所述初始项目对象中迁出的。
根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现所述对象管理方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,所述计算机指令被处理器执行时实现所述对象管理方法的步骤。
本申请提供的对象管理方法,通过接收针对项目子对象的合并请求,响应于所述合并请求确定用户在对象管理平台确定的对象管理信息;将所述对象管理信息对应的项目子对象以及与所述项目子对象关联的初始项目对象进行合并,以生成目标项目对象,其中,所述项目子对象是从所述初始项目对象中迁出的,实现了基于用户在对象管理平台的操作,对项目子对象的合并处理,即实现了通过对象管理平台,对对象合并进行控制以及管理,实现了对象合并的自动化,并避免了耗费人力进行对象合并,且避免了合并过程中可能出现的对象疏漏。
附图说明
图1是本申请一实施例提供的一种对象管理方法的流程图;
图2是本申请一实施例提供的一种对象管理方法中的分支管理的界面示意图;
图3是本申请一实施例提供的一种对象管理方法中分支剔除的示意图;
图4是本申请一实施例提供的一种对象管理方法中项目分支迁入迁出的示意图;
图5是本申请一实施例提供的一种应用于开发项目中的对象管理方法的处理流程图;
图6是本申请一实施例提供的一种对象管理装置的结构示意图;
图7是本申请一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本申请一个或多个实施例涉及的名词术语进行解释。
GIT仓库:代码仓库,代码可以根据不同的分支提交到代码仓库。
分支:GIT中术语,新需求开发时需要在原来主分支上切一个新分支出来进行开发,不同分支对应不同的代码功能。
分支合并:不同的需求代码对应多个分支,多个分支的代码需要进行合并发布。
发布:将某一个分支的代码发布到线上环境。
在本申请中,提供了一种对象管理方法,本申请同时涉及一种对象管理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例提供的一种对象管理方法的流程图,具体包括以下步骤:
步骤102:接收针对项目子对象的合并请求,响应于所述合并请求确定用户在对象管理平台确定的对象管理信息。
具体的,所述项目子对象,可以理解为项目的子项目、项目分支等,其中,项目,可以是工程项目、开发项目等,在此不做限制;所述项目分支,可以理解为开发项目中的开发分支(即项目中开发某一功能对应的功能分支)。
实际应用中,为了便于项目处理或项目管理,通常从初始项目对象中拆分或抽取出至少一个项目子对象,以便对每个项目子对象分别进行管理、进度推进或修改等处理,并在对这些项目子对象进行分别处理之后,为了保障项目的完整性,需要将这些项目子对象与初始项目对象进行合并,因此,可以在对象管理平台提交针对项目子对象的合并请求,在接收到对项目子对象的合并请求之后,确定用户在对象管理平台确定的对象管理信息。
具体实施时,对象管理信息,可以理解为针对项目子对象的合并信息,比如:项目名称、项目存储位置、项目子对象的名称、项目子对象的存储位置等信息,在此不做限制。
可选地,所述项目子对象包括:项目分支;相应的,所述对象管理平台包括:分支管理平台,所述项目对象包括:项目主分支,所述目标项目对象,包括:发布分支。
实际应用中,为了便于用户对项目子对象进行合并,提供了对象管理平台,以供用户在对象管理平台对项目中的子对象进行管理,进一步的,在对象为分支的情况下,对象管理平台为分支管理平台,具体的,分支管理平台的操作界面可以如图2所示。
具体实施时,用户可以在分支管理平台对项目中的分支进行分支管理,具体的,通过如图2所示的分支管理平台的操作界面中组件:班车日期、项目、GIT、选择分支、分支合并集、更新控件等对项目分支进行分支管理,其中,班车日期,用于选择分支的发布日期(比如:2021-01-12);项目,用于选择针对哪个项目中的分支进行管理,即用于选择需要发布的项目(比如:sunspot);GIT,可以理解为所选择的项目的GIT仓库地址(比如:git@git.co:business/sunspot.git),具体实施时,平台可以根据选择的项目自动获取该项目的GIT仓库地址;选择分支,用于选择需要合并的分支(branch1/branch2/branch3),在选择分支列表里边选择一个分支,这个分支就会添加到分支合并集合,且每个选择的分支对应的复选框是选中状态;分支合并集,用于展示在前述选择分支中选择的分支(比如:master(主)分支、feature/20201230-dynamic-reactive.zc、feature/2020-12-27/trust_ad、feature/202010107-log-agent.zc、feature/2021-01-11/story_refresh_config),此外,还可以通过分支合并集中选择的分支对应的复选框,取消针对该分支的选择;更新控件,用于在点击时,根据分支合并集中选择的分支进行分支合并,平台会根据发布日期自动生成发布分支(比如:release/2021-01-12/v1);更新后分支合并集合中的数据和列表中的特性分支一致。
实际应用中,在列表中还可以包括针对每个分支的总提交行数(30天内)、状态(比如合并状态)、测试状态等,比如针对master(主)分支的总提交行数为2632,针对feature/20201230-dynamic-reactive.z的总提交行数为3019,状态为SUCCESS(成功),测试状态为测试完成,针对feature/2020-12-27/trust_ad的总提交行数为3023,状态为SUCCESS(成功),测试状态为测试完成,针对feature/202010107-log-agent.zc的总提交行数为2425,状态为SUCCESS(成功),测试状态为测试完成,针对feature/2021-01-11/story_refresh_config的总提交行数为2633,状态为SUCCESS(成功),测试状态为测试完成。此外,在列表中也可以包括该项目(应用)的操作控件(比如:更新控件、同步master控件等)。
实际应用中,在分支管理平台上根据发布时间,只需要选择项目以及需要上线的代码分支,分支就会进行自动合并,合并时有版本约束,如果某一个需求不上线。只需要在平台的分支列表中剔除这个分支,然后重新生成即可。此时版本号会更新,用新版本的分支直接发布上线即可。
步骤104:将所述对象管理信息对应的项目子对象以及与所述项目子对象关联的初始项目对象进行合并,以生成目标项目对象。
其中,所述项目子对象是从所述初始项目对象中迁出的,所述初始项目对象,可以理解为项目子对象所属的项目对象(即初始项目对象),实际应用中,从初始项目对象中拆分或抽取出至少一个项目子对象,并在对这些项目子对象进行分别处理之后,为了保障项目的完整性,将这些项目子对象与初始项目对象进行合并,合并成为更新后的项目对象,即目标项目对象。
具体实施时,为了保障项目对象的完整性以及初始项目对象的安全性,本申请实施例提供的一种可选实施方式中,所述将所述对象管理信息对应的项目子对象以及与所述项目子对象关联的初始项目对象进行合并,以生成目标项目对象,具体采用如下方式实现:
基于所述合并请求创建目标文件夹;
从项目对象库中提取出所述对象管理信息对应的项目子对象以及与所述项目子对象关联的初始项目对象;
将所述初始项目对象以及所述项目子对象以合并的方式存储至所述目标文件夹,以生成目标项目对象。
其中,所述项目对象库,可以理解为存储初始项目对象以及项目子对象的服务器/数据库/文件夹等,在此不做限制,具体实施时,可以根据项目管理信息中的项目子对象的存储位置从项目对象库中提取出对应的项目子对象,也可以根据项目管理信息中初始项目对象中的项目名称,查找到初始项目对象的存储位置,再从该存储位置提取出对应的初始项目对象。
实际应用中,在将项目子对象与初始项目对象进行合并的过程中,为了不影响初始项目对象的初始状态或使用状态,可以创建一个新的文件夹(即目标文件夹),用于对项目子对象以及初始项目对象进行合并。
具体实施时,合并的具体实现可以是:分别将初始项目对象中包含的文件以及项目子对象中包含的文件复制粘贴到目标文件夹,粘贴完成之后,由目标文件夹以及目标文件夹内的项目文件,组成目标项目对象。
进一步的,由于项目子对象可以为一个或多个,本申请实施例提供的一种可选实施方式中,所述项目子对象为多个;
相应地,所述将所述初始项目对象以及所述项目子对象以合并的方式存储至所述目标文件夹,以生成目标项目对象,具体采用如下方式实现:
根据每个项目子对象对应的对象文件,确定两个或两个以上目标项目子对象对同一个对象文件存在修改的目标对象文件;
通过分别将每个目标对象文件与所述初始项目对象中对应的对象文件进行对比,统计每个目标项目子对象针对所述目标对象文件的修改位置;
在所述修改位置不重合的情况下,将所述目标对象文件进行内容合并;
基于合并后的目标对象文件,将所述初始项目对象以及所述项目子对象以合并的方式存储至所述目标文件夹,以生成目标项目对象。
实际应用中,可能存在不同的项目子对象对同一对象文件(目标对象文件)存在修改的情况,在这种情况下,需要通过将这些目标对象文件与初始项目对象中对应的对象文件进行对比,从而统计出每个目标项目子对象对目标对象文件的修改位置,以便基于统计位置,确定目标项目子对象对目标对象文件的修改是否存在冲突。
具体实施时,在统计所述目标对象文件相对于在所述项目对象中对应的对象文件的修改位置之后,可以将每个目标项目子对象针对所述目标对象文件的修改位置进行对比,从而将确定各个修改位置之间是否存在重合,若不重合,表明针对目标对象文件的修改不存在冲突,则可以基于修改位置,将至少两个目标对象文件合并为一个目标对象文件,并在此基础上,与初始项目对象进行合并,生成目标项目对象;若重合,表明针对目标对象文件的修改存在冲突,则需要在解决冲突的基础上,再进行合并处理。
具体的,基于合并后的目标对象文件,将所述初始项目对象以及所述项目子对象以合并的方式存储至所述目标文件夹,以生成目标项目对象,可以是先将初始项目对象中包含的文件复制粘贴至目标文件夹,然后将项目子对象中包含的除目标对象文件之外的文件复制粘贴到目标文件夹,再将合并后的目标对象文件复制粘贴到目标文件夹以替换初始项目对象中对应的对象文件,从而生成目标项目对象。
需要说明的是,在确定各个修改位置之间不重合的情况下,还可能存在实际的修改信息存在冲突,为了避免这种冲突,还可以针对修改位置进行提示,以便在确定修改位置对应的修改信息不存在冲突之后,再进行合并处理。
以项目为开发项目为例,初始项目对象为master(主)分支,从master分支迁出来的两个项目分支分别为branch1和branch2,如果两个项目分支都对同一个代码文件(目标对象文件)均进行了修改,可以统计出来该代码文件中有哪些行号的数据内容有变更,若branch1对该代码文件code1的第5-10行进行了修改,branch2对该代码文件code1的第15-25行进行了修改,二者之间不存在重叠,则可以将branch1和branch2中的该代码文件进行内容合并,再将master主分支中的代码文件、branch1和branch2中除上述代码文件之外的代码文件,合并后的代码文件分别复制粘贴至新创建的目标文件夹,从而生成发布分支。
进一步的,还存在修改位置存在重合位置的情况,本申请实施例提供的一种可选实施方式中,所述统计每个目标项目子对象针对所述目标对象文件的修改位置之后,还包括:
在所述修改位置存在重合位置的情况下,针对所述修改位置以及所述重合位置进行提示;或,
在所述修改位置存在重合位置的情况下,确定所述两个或两个以上目标项目子对象针对所述重合位置的修改时间,
根据所述修改时间,确定针对所述重合位置的修改信息,并基于所述修改信息,将所述目标对象文件进行内容合并。
实际应用中,在存在两个或两个以上的目标项目子对象对同一个对象文件都有修改,且修改信息在初始项目对象中对应的对象文件对应的修改位置存在重合位置的情况下,表明这两个或两个以上的项目子对象的修改存在冲突,为了更快地解决冲突,可以将各个修改位置以及重合位置进行提示,以便快速地定位冲突的位置,并解决冲突。
沿用上例,若branch1对该代码文件code1的第5-20行进行了修改,branch2对该代码文件code1的第10-25行进行了修改,两个修改位置之间存在重叠,即进一步确定重合位置为10-20行,也表明branch1和branch2之间存在代码冲突的情况,则可以针对branch1和branch2对该代码文件的修改位置以及重合位置进行提示,以便基于提示,快速确定以该代码文件中的哪些代码行的数据为准,从而去除冲突的内容,再进行合并处理。
此外,在所述修改位置存在重合位置的情况下,还可以确定上述两个或两个以上的目标项目子对象针对所述重合位置的修改时间,实际应用中,针对重合位置的修改时间,可以根据各个目标项目子对象中目标对象文件对应的修改时间戳进行确定,此外,也可以预先记录针对对象文件每次进行修改的修改位置以及修改时间,并根据记录的修改位置以及修改时间,确定针对重合位置的修改时间。
进一步的,在确定修改时间之后,可以根据修改时间,确定针对所述重合位置的修改信息,具体的,可以采用修改时间靠后的目标项目子对象针对重合位置的修改信息,也可以采用修改时间靠前的目标项目子对象针对重合位置的修改信息,实际应用中,可以预设针对修改时间的选取条件(比如选取修改时间靠后的修改信息),再根据选取条件,选取相应的修改信息。并在确定该修改信息的基础上,对目标对象文件进行内容合并,且基于合并后的目标对象文件,将所述初始项目对象以及所述项目子对象以合并的方式存储至所述目标文件夹,以生成目标项目对象,
比如,branch1对该代码文件code1的第5-20行的修改时间为2020/2/15日,branch2对该代码文件code1的第10-25行的修改时间为2020/3/15日,其中,branch2对该代码文件code1的修改时间较晚,而预设选取条件为选取修改时间靠后的修改信息,则通过对重合位置10-20行选取branch2对该代码文件code1的修改信息,并对代码文件code1的5-9行选取branch1的修改信息,对代码文件code1的21-25行选取branch2的修改信息的方式,对代码文件code1进行内容合并。
此外,还可以根据目标项目子对象的优先级、修改内容的多少等,确定重合位置的修改信息。
进一步的,在对项目子对象进行合并之后,本申请实施例提供的一种可选实施方式中,所述生成目标项目对象之后,还包括:
接收针对所述目标项目对象中项目子对象的对象移除指令,其中,所述项目移除指令中携带对象信息;
基于对象信息将对应的第一项目子对象从所述目标项目对象中进行移除。
实际应用中,在合并生成目标项目对象之后,可能还需要对目标项目对象或对目标项目对象中的项目子对象进行测试,以便保障目标项目对象的稳定性,若发现其中一个项目子对象存在问题,则需要将该项目子对象从目标项目对象中移除,以免影响目标项目对象的准确性,具体的,存在的问题,可以是合并过程中产生的问题,也可以是针对项目子对象的测试出现的代码漏洞(bug)等,在此不做限制。
具体实施时,在确定需要对哪个项目子对象进行移除之后,则可以下发针对该项目子对象(第一项目子对象)的对象移除指令,该项目移除指令中通过对象信息,指定了待移除的项目子对象,即第一项目子对象,具体的,对象信息中,可以包括待移除的项目子对象的对象名称、对象标识、存储地址等可以确定第一目标子对象的信息。
进一步,在确定第一项目子对象之后,将第一项目子对象从目标项目对象中移除的方式是多种多样的,比如,可以先确定第一项目子对象在目标项目对象中对应的对象文件,再从目标项目对象中删除第一项目子对象对应的对象文件,并确定删除的对象文件在初始项目对象中对应的对象文件,将对应的对象文件复制粘贴至目标项目对象中。
此外,为了进一步保障移除过程的安全性,本申请实施例提供的一种可选实施方式中,所述基于对象信息将对应的第一项目子对象从所述目标项目对象中进行移除,具体采用如下方式实现:
基于所述对象信息,确定所述对象信息对应的第一项目子对象;
确定所述对象管理信息对应的项目子对象中除所述第一项目子对象之外的第二项目子对象;
将所述第二项目子对象以及所述初始项目对象进行合并,以生成第二目标项目对象,将所述第二目标项目对象作为所述目标项目对象。
实际应用中,由于合并生成目标项目对象的过程中,可能存在对项目子对象中包含的对象文件的取舍,因此,为了避免在移除过程中错误移除其他的对象文件,或者移除第一项目子对象中包含的对象文件之后,又没有补充所删除的对象文件对应的文件,对目标项目对象的完整性造成影响,本申请实施例,可以在确定待移除的第一项目子对象之后,将对象管理信息对应的项目子对象中除第一项目子对象之外的项目子对象(即第二项目子对象),以及初始项目对象重新进行合并处理,生成第二目标项目对象,并将第二目标项目对象作为目标项目对象。
具体的,如图3所示,以项目为应用,并以项目子对象包括分支1、分支2以及分支3为例,其中,分支1对应的分支路径(存储位置)为feature/2021-01-02/11,分支2对应的分支路径为feature/2021-01-02/12,分支3对应的分支路径为feature/2021-01-02/13,将这3个分支以及应用对应的主分支进行分支合并,生成发布分支,该发布分支对应的分支路径为feature/2021-01-02/v1,在发布分支上线后,发现分支3出现代码漏洞(bug),则将分支3作为问题分支进行删除(剔除),并对分支1以及分支2重新进行分支合并,生成发布分支,该发布分支对应的分支路径为:feature/2021-01-02/v2。
进一步的,在对目标项目对象或对目标项目对象中的项目子对象完成测试之后,为了进一步保障目标项目对象的稳定性,本申请实施例提供的一种可选实施方式中,所述生成目标项目对象之后,还包括:
接收针对所述目标项目对象中任一项目子对象的测试完成指令;
基于所述测试完成指令对所述任一项目子对象进行锁定。
其中,所述测试完成指令,可以是用户通过对象管理平台提交的,在此不做限制,具体实施时,基于测试完成指令中携带的测试对象信息(可以理解为针对测试的对象信息),即可确定测试对象信息对应的项目子对象,并进一步将确定的项目子对象进行锁定。
具体实施时,在测试完成之后,对完成测试的项目子对象进行锁定,是为了尽量避免对目标项目对象进行修改,从而保障目标项目对象的稳定性以及安全性。
需要说明的是,还可以直接针对目标项目对象提交测试完成请求,具体实施时,基于测试完成请求对目标项目对象的锁定,与基于测试完成请求对项目子对象的锁定的具体实现类似,参考上述基于测试完成请求针对项目子对象的锁定的具体实现即可,在此不做限制。
再进一步的,本申请实施例提供的一种可选实施方式中,所述基于所述测试完成指令对所述任一项目子对象进行锁定之后,还包括:
在接收到针对所述任一项目子对象的修改请求的情况下,将所述修改请求发送至所述任一项目子对象对应的目标项目方进行审批;
在审批通过的情况下,基于所述修改请求,对所述任一项目子对象进行修改。
实际应用中,在针对任一项目子对象测试完成之后,若发现仍有需要修改的内容,则可以提交针对任一项目子对象的修改请求,该修改请求中可以携带修改原因、修改内容、修改的对象文件名称等信息,在此不做限制。
进一步的,在接收到修改请求之后,将修改请求发送至有权限对该修改请求进行审批的目标项目方进行审批,在审批通过的情况下,基于修改请求,对所述目标项目对象中的任一项目子对象进行修改,具体实施时,基于修改请求,对该任一项目子对象进行修改的方式是多种多样的,比如,可以基于所述修改请求,确定修改请求对应的修改的对象文件,将修改的对象文件合并至该任一项目子对象,此外,还可以开通针对该修改请求在任一项目子对象的修改权项,直接对目标项目对象中项目子对象中的文件进行修改等,在此不做限制。
需要说明的是,还可以直接针对目标项目对象提交修改请求,具体实施时,对目标项目对象的修改与对项目子对象的修改类似,参考上述针对项目子对象的修改即可,在此不做限制。
实际应用中,由于在发布过程中,可能会发生一些在测试时未发现的问题,因此,可以根据修改量,来确定目标项目对象的项目控制对象,以便项目控制对象对项目进行,本申请实施例提供的一种可选实施方式中,所述生成目标项目对象之后,还包括:
统计针对每个项目子对象的修改行数;
基于所述修改行数确定所述目标项目对象的项目控制对象。
其中,所述项目控制对象,可以理解为对目标项目对象进行合并或发布等管理的负责对象。
实际应用中,针对项目子对象的修改行数可能是30行,也可能是200行等,在此不做限定;修改行数越多,表明针对该目标子对象的修改量越大,相应的,修改量越大,也表明修改出错的机率越大,因此,基于修改行数,可以将多个项目子对象中的修改行数最多的项目子对象,确定为项目控制对象,以便更快速的定位项目子对象中可能存在的问题。
此外,还可以将修改行数最多的项目子对象对应的修改方,确定为项目控制对象,在此不做限制。
进一步的,本申请实施例提供的一种可选实施方式中,所述生成目标项目对象之后,还包括:
按照所述对象管理信息中的时间信息,对所述目标项目对象进行发布;
在发布成功的情况下,将所述目标项目对象合并至所述初始项目对象。
实际应用中,在生成目标项目对象之后,可以根据在对象管理信息中针对目标项目对象的发布时间(即时间信息),对目标项目对象发布至线上,并在发布成功的情况下,将目标项目对象合并至初始项目对象,是为了避免初始项目对象中缺少针对其进行更新后的内容。
具体的,如图4所示,以项目为开发项目为例,初始项目对象为master(主)分支,所有的分支都是从master主分支上迁出来,从master主分支迁出来分支branch1(用以开发功能1);迁出来分支branch2(用以开发功能2)……;依此类推。各功能开发完成后,需要将各分支合并上线(相当于上线版本集合各分支对应的功能),可以基于上面的操作界面,对分支branch1、branch2和branch3进行合并,发布后新的版本(发布分支)为Release/2021-01-12/v1,将发布分支发布后,再将新的版本(即发布分支)迁回到master主分支,保证功能的完整性,后续的功能开发需要在master主分支上重新进行分支迁出,上线(发布)完成后再将发布分支合并入master主分支。
综上所述,本申请提供的对象管理方法,通过接收针对项目子对象的合并请求,响应于所述合并请求确定用户在对象管理平台确定的对象管理信息;将所述对象管理信息对应的项目子对象以及与所述项目子对象关联的初始项目对象进行合并,以生成目标项目对象,其中,所述项目子对象是从所述初始项目对象中迁出的,实现了基于用户在对象管理平台的操作,对项目子对象的合并处理,即实现了通过对象管理平台,对对象合并进行控制以及管理,实现了对象合并的自动化,并避免了耗费人力进行对象合并,且避免了合并过程中可能出现的对象疏漏。
下述结合附图5,以本申请提供的对象管理方法在开发项目中的应用为例,对所述对象管理方法进行进一步说明。其中,图5示出了本申请一实施例提供的一种应用于开发项目中的对象管理方法的处理流程图,具体包括以下步骤:
步骤502:接收针对项目分支的合并请求,响应于所述合并请求确定用户在分支管理平台确定的分支管理信息。
步骤504:基于所述合并请求创建目标文件夹。
步骤506:从项目仓库中提取出所述分支管理信息对应的项目分支以及与所述项目分支关联的项目主分支。
步骤508:在所述项目分支为多个的情况下,根据每个项目分支对应的分支文件,确定两个或两个以上目标项目分支对同一个分支文件存在修改的目标分支文件。
步骤510:通过分别将每个目标分支文件与所述项目主分支中对应的分支文件进行对比,统计每个目标项目分支针对所述目标分支文件的修改位置。
步骤512:在所述修改位置不重合的情况下,将所述目标分支文件进行内容合并。
步骤514:基于合并后的目标分支文件,将所述项目主分支以及所述项目分支以合并的方式存储至所述目标文件夹,以生成发布分支。
步骤516:接收针对所述发布分支中项目分支的分支移除指令,其中,所述分支移除指令中携带分支信息。
步骤518:基于所述分支信息,确定所述分支信息对应的第一项目分支。
步骤520:确定所述分支管理信息对应的项目分支中除所述第一项目分支之外的第二项目分支。
步骤522:将所述第二项目分支以及所述项目主分支进行合并,以生成第二发布分支,将所述第二发布分支作为所述发布分支。
步骤524:按照所述分支管理信息中的发布时间信息,对所述发布分支进行发布。
步骤526:在发布成功的情况下,将所述发布分支合并至所述项目主分支。
综上所述,本申请提供的对象管理方法,通过接收针对项目分支的合并请求,响应于所述合并请求确定用户在分支管理平台确定的分支管理信息;将所述分支管理信息对应的项目分支以及与所述项目分支关联的项目主分支进行合并,以生成发布分支,实现了基于用户在分支管理平台的操作,对项目分支的合并处理,即实现了通过分支管理平台,对分支合并进行控制以及管理,实现了分支合并的自动化,并避免了耗费人力进行分支合并,且避免了合并过程中可能出现的分支疏漏。
与上述方法实施例相对应,本申请还提供了对象管理装置实施例,图6示出了本申请一实施例提供的一种对象管理装置的结构示意图。如图6所示,该装置包括:
接收模块602,被配置为接收针对项目子对象的合并请求,响应于所述合并请求确定用户在对象管理平台确定的对象管理信息;
合并模块604,被配置为将所述对象管理信息对应的项目子对象以及与所述项目子对象关联的初始项目对象进行合并,以生成目标项目对象,其中,所述项目子对象是从所述初始项目对象中迁出的。
可选地,所述合并模块604,包括:
创建子模块,被配置为基于所述合并请求创建目标文件夹;
提取子模块,被配置为从项目对象库中提取出所述对象管理信息对应的项目子对象以及与所述项目子对象关联的初始项目对象;
合并子模块,被配置为将所述初始项目对象以及所述项目子对象以合并的方式存储至所述目标文件夹,以生成目标项目对象。
可选地,所述对象管理装置,还包括:
发布模块,被配置为按照所述对象管理信息中的时间信息,对所述目标项目对象进行发布;
第二合并模块,被配置为在发布成功的情况下,将所述目标项目对象合并至所述初始项目对象。
可选地,所述项目子对象为多个;
相应地,所述合并子模块,进一步被配置为:
根据每个项目子对象对应的对象文件,确定两个或两个以上目标项目子对象对同一个对象文件存在修改的目标对象文件;
通过分别将每个目标对象文件与所述初始项目对象中对应的对象文件进行对比,统计每个目标项目子对象针对所述目标对象文件的修改位置;
在所述修改位置不重合的情况下,将所述目标对象文件进行内容合并;
基于合并后的目标对象文件,将所述初始项目对象以及所述项目子对象以合并的方式存储至所述目标文件夹,以生成目标项目对象。
可选地,所述合并子模块,进一步被配置为:
在所述修改位置存在重合位置的情况下,针对所述修改位置以及所述重合位置进行提示;或,
在所述修改位置存在重合位置的情况下,确定所述两个或两个以上目标项目子对象针对所述重合位置的修改时间,
根据所述修改时间,确定针对所述重合位置的修改信息,基于所述修改信息,将所述目标对象文件进行内容合并。
可选地,所述对象管理装置,还包括:
第一接收指令模块,被配置为接收针对所述目标项目对象中项目子对象的对象移除指令,其中,所述项目移除指令中携带对象信息;
移除模块,被配置为基于对象信息将对应的第一项目子对象从所述目标项目对象中进行移除。
可选地,所述移除模块,进一步被配置为:
基于所述对象信息,确定所述对象信息对应的第一项目子对象;
确定所述对象管理信息对应的项目子对象中除所述第一项目子对象之外的第二项目子对象;
将所述第二项目子对象以及所述初始项目对象进行合并,以生成第二目标项目对象,将所述第二目标项目对象作为所述目标项目对象。
可选地,所述对象管理装置,还包括:
第二接收指令模块,被配置为接收针对所述目标项目对象中任一项目子对象的测试完成指令;
锁定模块,被配置为基于所述测试完成指令对所述任一项目子对象进行锁定。
可选地,所述对象管理装置,还包括:
审核模块,被配置为在接收到针对所述任一项目子对象的修改请求的情况下,将所述修改请求发送至所述任一项目子对象对应的目标项目方进行审批;
第三合并模块,被配置为在审批通过的情况下,基于所述修改请求,对所述任一项目子对象进行修改。
可选地,所述对象管理装置,还包括:
统计模块,被配置为统计针对每个项目子对象的修改行数;
确定模块,被配置为基于所述修改行数确定所述目标项目对象的项目控制对象。
可选地,所述项目子对象包括:项目分支;相应的,所述对象管理平台包括:分支管理平台,所述项目对象包括:项目主分支,所述目标项目对象,包括:发布分支。
综上所述,本申请提供的对象管理装置,通过接收针对项目子对象的合并请求,响应于所述合并请求确定用户在对象管理平台确定的对象管理信息;将所述对象管理信息对应的项目子对象以及与所述项目子对象关联的初始项目对象进行合并,以生成目标项目对象,其中,所述项目子对象是从所述初始项目对象中迁出的,实现了基于用户在对象管理平台的操作,对项目子对象的合并处理,即实现了通过对象管理平台,对对象合并进行控制以及管理,实现了对象合并的自动化,并避免了耗费人力进行对象合并,且避免了合并过程中可能出现的对象疏漏。
上述为本实施例的一种对象管理装置的示意性方案。需要说明的是,该对象管理装置的技术方案与上述的对象管理方法的技术方案属于同一构思,对象管理装置的技术方案未详细描述的细节内容,均可以参见上述对象管理方法的技术方案的描述。
图7示出了根据本说明书一个实施例提供的一种计算设备700的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。
计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备700还可以是移动式或静止式的服务器。
其中,处理器720执行所述计算机指令时实现所述的对象管理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的对象管理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述对象管理方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,所述计算机指令被处理器执行时实现如前所述对象管理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的对象管理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述对象管理方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。
- 对象管理装置、思考辅助装置、对象管理方法以及计算机可读存储介质
- 基于多个对象端的对象管理方法及装置