CN111125744B - 代码分支合并方法、系统、计算机设备及可读存储介质 - Google Patents
代码分支合并方法、系统、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN111125744B CN111125744B CN201811290857.6A CN201811290857A CN111125744B CN 111125744 B CN111125744 B CN 111125744B CN 201811290857 A CN201811290857 A CN 201811290857A CN 111125744 B CN111125744 B CN 111125744B
- Authority
- CN
- China
- Prior art keywords
- role
- subset
- authority
- file
- storage path
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种代码分支合并方法,其特征在于,方法包括:响应于代码分支的合并请求,确定合并待合并代码分支时发生变化的变更文件集合,其中,变更文件集合中包括至少一个变更文件;查找变更文件集合对应的权限角色集合,其中,权限角色集合中包括用于管理变更文件集合的目标权限角色;以及基于目标权限角色,合并待合并代码分支。本公开还提供了一种代码分支合并系统、一种计算机设备及一种计算机可读存储介质。
Description
技术领域
本发明涉及计算机技术领域,具体涉及代码分支合并方法、系统、计算机设备及计算机可读存储介质。
背景技术
目前,对于一个大仓库而言,只存在一个权限文件,这个权限文件中包括所有的权限角色和每个权限角色的权限。基于这种情况,现有技术在合并代码分支时只能通过这个权限文件中的权限角色执行合并操作。
然而,在实现本发明构思的过程中,发明人发现相关技术中至少存在如下缺陷:随着合并请求的增多,现有技术中的权限角色可能没有足够的时间执行合并操作,导致代码分支合并无法及时进行,严重拖延项目进度。
发明内容
本公开目的是提供一种代码分支合并方法、系统、计算机设备及计算机可读存储介质,以至少解决现有技术中代码分支合并无法及时进行、严重拖延项目进度的缺陷。
本公开的一个方面提供了一种代码分支合并方法,其特征在于,上述方法包括:响应于代码分支的合并请求,确定合并待合并代码分支时发生变化的变更文件集合,其中,上述变更文件集合中包括至少一个变更文件;查找上述变更文件集合对应的权限角色集合,其中,上述权限角色集合中包括能够管理上述变更文件集合的目标权限角色;以及基于上述目标权限角色,合并上述待合并代码分支。
根据本公开的实施例,上述查找上述变更文件集合对应的权限角色集合,包括:查找上述变更文件集合中每个上述变更文件对应的权限角色子集合,得到至少一个权限角色子集合,其中,与上述变更文件对应的权限角色子集合中的权限角色能够管理该变更文件,上述至少一个权限角色子集合对应的权限角色中包括上述目标权限角色;以及将上述至少一个权限角色子集合确定为上述权限角色集合。
根据本公开的实施例,上述查找上述变更文件集合中每个上述变更文件对应的权限角色子集合,得到至少一个权限角色子集合,包括:确定上述变更文件集合中每个上述变更文件对应的存储路径,得到至少一个存储路径;以及基于上述至少一个存储路径中每个上述存储路径,查找与该存储路径对应的变更文件的权限角色子集合,得到上述至少一个权限角色子集合。
根据本公开的实施例,上述存储路径包括至少一个目录层,每个目录层的级别不同,上述基于上述至少一个存储路径中每个上述存储路径,查找与该存储路径对应的变更文件的权限角色子集合,包括:针对每个存储路径,查找该存储路径包括的上述至少一个目录层中级别最低的目录层是否关联有上述权限角色子集合;以及若是,则提取所述权限角色子集合,并继续查找其他存储路径对应的变更文件的权限角色子集合。
根据本公开的实施例,上述方法还包括:若上述级别最低的目录层没有关联上述权限角色子集合,则继续查找上一级别的目录层是否关联有上述权限角色子集合。
根据本公开的实施例,上述基于上述目标权限角色,合并上述待合并代码分支,包括:响应于代码分支的合并指令,判断上述目标权限角色是否被赋权;以及若上述目标权限角色被赋权,则合并上述待合并代码分支。
根据本公开的实施例,上述变更文件包括新增文件或者删除文件或者修改文件,上述确定上述变更文件集合中每个上述变更文件对应的存储路径,包括:确定上述新增文件的最终存储路径;和/或确定上述删除文件的原始存储路径;和/或确定上述修改文件的原始存储路径。
本公开的另一个方面提供了一种代码分支合并系统,其特征在于,上述系统包括:确定模块,用于响应于代码分支的合并请求,确定合并待合并代码分支时发生变化的变更文件集合,其中,上述变更文件集合中包括至少一个变更文件;第一查找模块,用于查找上述变更文件集合对应的权限角色集合,其中,上述权限角色集合中包括能够管理上述变更文件集合的目标权限角色;以及合并模块,用于基于上述目标权限角色,合并上述待合并代码分支。
根据本公开的实施例,上述第一查找模块包括:查找单元,用于查找上述变更文件集合中每个上述变更文件对应的权限角色子集合,得到至少一个权限角色子集合,其中,与上述变更文件对应的权限角色子集合中的权限角色能够管理该变更文件,上述至少一个权限角色子集合对应的权限角色中包括上述目标权限角色;以及确定单元,用于将上述至少一个权限角色子集合确定为上述权限角色集合。
根据本公开的实施例,上述查找单元包括:确定子单元,用于确定上述变更文件集合中每个上述变更文件对应的存储路径,得到至少一个存储路径;以及查找子单元,用于基于上述至少一个存储路径中每个上述存储路径,查找与该存储路径对应的变更文件的权限角色子集合,得到上述至少一个权限角色子集合。
根据本公开的实施例,上述存储路径包括至少一个目录层,每个目录层的级别不同,上述查找子单元还用于:针对每个存储路径,查找该存储路径包括的上述至少一个目录层中级别最低的目录层是否关联有上述权限角色子集合;以及若是,则提取上述权限角色子集合,并继续查找其他存储路径对应的变更文件的权限角色子集合。
根据本公开的实施例,上述系统还包括:第二查找模块,在上述级别最低的目录层没有关联上述权限角色子集合的情况下,继续查找上一级别的目录层是否关联有上述权限角色子集合。
根据本公开的实施例,上述合并模块包括:判断单元,用于响应于代码分支的合并指令,判断上述目标权限角色是否被赋权;以及合并单元,用于在上述目标权限角色被赋权的情况下,合并上述待合并代码分支。
根据本公开的实施例,上述变更文件包括新增文件或者删除文件或者修改文件,上述确定子单元还用于:确定上述新增文件的最终存储路径;和/或确定上述删除文件的原始存储路径;和/或确定上述修改文件的原始存储路径。
本公开的再一个方面提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,上述处理器执行上述计算机程序时用于实现如上任一项所述的代码分支合并方法的步骤。
本公开的又一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时用于实现如上任一项所述的代码分支合并方法的步骤。
本公开提供的代码分支合并方法,在接收到代码分支的合并请求之后,可以预先估计出待合并代码分支在合并时可能涉及的变更文件集合,然后找到该变更文件集合对应的权限文件集合,再根据权限文件集合中包括的用于整个变更文件集合的目标权限角色执行本次合并操作,由于本公开的实施例只需根据权限文件集合中能够管理整个变更文件集合的目标权限角色执行合并,进而可以实现提高合并速度的技术效果,避免了现有技术中代码分支合并无法及时进行、严重拖延项目进度的缺陷。
附图说明
图1示意性示出了根据本公开实施例的代码分支合并方法的流程图;
图2示意性示出了根据本公开实施例的查找权限角色集合的流程图;
图3示意性示出了根据本公开实施例的基于目标权限角色合并待合并代码分支的流程图;
图4示意性示出了根据本公开实施例的代码分支合并系统的框图;以及
图5示意性示出了根据本公开实施例的适于实现代码分支合并方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本公开,并不用于限定本公开。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
考虑到现有技术中代码分支合并无法及时进行、严重拖延项目进度的缺陷。本公开提供的代码分支合并方法,在接收到代码分支的合并请求之后,可以预先估计出待合并代码分支在合并时可能涉及的变更文件集合,然后找到该变更文件集合对应的权限文件集合,再根据权限文件集合中包括的用于整个变更文件集合的目标权限角色执行本次合并操作,由于本公开的实施例只需根据权限文件集合中能够管理整个变更文件集合的目标权限角色执行合并,进而可以实现提高合并速度的技术效果
图1示意性示出了根据本公开实施例的代码分支合并方法的流程图。
如图1所示,该代码分支合并方法可以包括步骤S101~步骤S103,其中:
在步骤S101,响应于代码分支的合并请求,确定合并待合并代码分支时发生变化的变更文件集合,其中,所述变更文件集合中包括至少一个变更文件。
在本公开的实施例中,待合并代码分支可以包括多个代码分支,这多个代码分支中有一个主干代码分支,合并该待合并代码分支即是将其他的代码分支合并到该主干代码分支上。例如待合并代码分支包括两个代码分支分别是branchA和master,其中,master为主干代码分支,则在合并这些代码分支时,就是将branchA合并到master上。
根据本公开的实施例,在发出代码分支的合并请求之后,可以预先估计出本次合并会涉及哪些变更文件,具体可以是预先估计出将其他代码分支合并到主干代码分支时,主干代码分支上会涉及哪些变更文件,例如,可以根据git diff shell命令解析出若将branchA合并到master上,master会涉及哪些变更文件,然后将这些变更文件作为一个变更文件集合。
需要说明的是,本公开实施例的变更文件可以是新增文件、修改文件、删除文件中的任意一个,变更文件集合可以包括新增文件、修改文件和删除文件中的至少一个。
在步骤S102,查找所述变更文件集合对应的权限角色集合,其中,所述权限角色集合中包括用于管理所述变更文件集合的目标权限角色。
在本公开的实施例中,查找变更文件集合对应的权限角色集合可以如图2所示,图2示意性示出了根据本公开实施例的查找权限角色集合的流程图,其中,步骤S201,查找变更文件集合中每个变更文件对应的权限角色子集合,得到至少一个权限角色子集合,其中,与变更文件对应的权限角色子集合中的权限角色用于管理该变更文件,至少一个权限角色子集合对应的权限角色中包括目标权限角色;步骤S202,将至少一个权限角色子集合确定为权限角色集合。具体地,首先查找每个变更文件对应的权限角色子集合,然后将找到的这些权限角色子集合作为权限角色集合。其中,所有的权限角色子集合中包括的所有权限角色中包括目标权限角色,也即权限角色集合中包括目标权限角色。
例如,有两个变更文件分别是变更文件a和变更文件b,变更文件a对应的权限角色子集合a中包括权限角色1、权限角色2和权限角色3,变更文件b对应的权限角色子集合b中包括权限角色1、权限角色3和权限角色4,其中,权限角色1和权限角色3均可以作用于变更文件a和变更文件b,即权限角色1和权限角色3能够作用于整个变更文件集合,则权限角色1和权限角色3即为目标权限角色。
根据本公开的实施例,查找变更文件集合中每个变更文件对应的权限角色子集合,得到至少一个权限角色子集合,可以包括:确定变更文件集合中每个变更文件对应的存储路径,得到至少一个存储路径;以及基于至少一个存储路径中每个存储路径,查找与该存储路径对应的变更文件的权限角色子集合,得到至少一个权限角色子集合。其中,存储路径可以包括代码仓库的名称、代码分支(例如主干代码分支)的名称和变更文件在代码分支(例如主干代码分支)上存储的目录层。
需要说明的是,每个权限角色子集合均关联有一个唯一标识(例如唯一标识为key,权限角色子集合为value),这个唯一标识能够表征权限角色子集合的作用域,即该唯一标识能够表征该权限角色子集合中每个权限角色所能作用的范围。例如,权限角色子集合的唯一标识为common_matser_a/b/c/,其中,common为代码仓库的名称,master为源于该代码仓库的主干分支的名称,a/b/c为主干代码分支的某一个目录层,则该权限角色子集合中的权限角色能够管理c目录本身以及c目录中包括的内容。
根据本公开的实施例,变更文件可以包括新增文件或者删除文件或者修改文件,确定变更文件集合中每个变更文件对应的存储路径,可以包括:确定新增文件的最终存储路径;或者确定删除文件的原始存储路径;或者确定修改文件的原始存储路径。
例如,预先解析出若将branchA合并到master会导致master上涉及的变更文件集合为:一个新增文件、一个删除文件和一个修改文件。其中,新增文件将会存储在master的a/b/c目录下,删除文件目前存储在master的a/b/c目录下,修改文件原来存储在master的a/b/d目录下,branchA与master合并后修改文件将会存储在master的a/b目录下。那么,对于新增文件的存储路径可以是common_master_/a/b/c/;对于删除文件的存储路径可以是common_master_/a/b/c/;对于修改文件的存储路径可以common_master_/a/b/d/。
根据本公开的实施例,存储路径包括至少一个目录层,每个目录层的级别不同,基于至少一个存储路径中每个存储路径,查找与该存储路径对应的变更文件的权限角色子集合,包括:针对每个存储路径,查找该存储路径包括的至少一个目录层中级别最低的目录层是否关联有权限角色子集合;以及若是,则提取该权限角色子集合,并继续查找其他存储路径对应的变更文件的权限角色子集合。若级别最低的目录层没有关联权限角色子集合,则继续查找上一级别的目录层是否关联有权限角色子集合。
例如,若新增文件的存储路径对应的目录层分别为common_master_/a/b/c/、common_master_/a/b/、common_master_/a/、common_master_/,修改文件对应的存储路径为common_master_/a/b/e/。进一步,首先将common_master_/a/b/c/赋给key,寻找key为common_master_/a/b/c/的权限角色子集合。若有,则停止对该新增文件的查找,而是查找修改文件的权限角色子集合;若没有,则寻找key为common_master_/a/b/的权限角色子集合。若有,则停止对该新增文件的查找,而是查找修改文件的权限角色子集合;若没有,则寻找key为common_master_/a/的权限角色子集合。若有,则停止对该新增文件的查找,而是查找修改文件的权限角色子集合;若没有,则寻找key为common_master_/的权限角色子集合。
进一步,可以将确定出这些权限角色子集合进行合并(可以表示为“或”)去重,如可以基于每个权限角色子集合对应的唯一标识进行合并去重操作,这样,便可以确定出能够作用于整个变更文件集合的目标权限角色。
例如,对于新增文件对应的权限角色子集合为:权限角色A、权限角色B,且对应的唯一标识为common_master_/a/b/;对于删除文件对应的权限角色子集合为:权限角色A、权限角色C,且对应的唯一标识为common_master_/a/b/;对于删除文件对应的权限角色子集合为:权限角色B、权限角色D,且对应的唯一标识为common_master_/a/b/e。则唯一标识为common_master_/a/b/对应的权限角色应该为:权限角色A、权限角色B、权限角色C,唯一标识为common_master_/a/b/e对应的权限角色应该为:权限角色B、权限角色D。由于common_master_/a/b/级别高于common_master_/a/b/e级别,则再次将权限角色进行合并即可以确定出目标权限角色为:权限角色A、权限角色B、权限角色C,且这些目标权限角色对应的唯一标识为common_master_/a/b/,也即目标权限角色能够作用于目录b本身以及目录b中包括的内容。
在步骤S103,基于目标权限角色,合并待合并代码分支。
在本公开的实施例,为了保证合并的安全性,在确定出目标权限角色之后,还可以通过第一预设评论操作如“+1”对目标权限角色赋权,这样,目标权限角色被赋权之后,才可以执行代码分支的合并操作。
例如,在一个具有UI界面的代码版本控制系统中,有一种不同代码分支合并机制,如gitlab中的merge request、github中的pull request。在这种代码分支合并机制的UI界面(如web界面)中,用户可以进行留言,本公开的实施例可以使用用户留言“+1”的方式进行赋权,如赋予目标权限角色执行代码分支合并的权利。
根据本公开的实施例,在赋权之后,若有用户执行第二预设评论操作例如留言“+merge”,则可以表明执行代码分支合并操作。本公开的实施例通过第一预设评论操作进行赋权,并通过第二预设评论操作发出合并指令,可以保证所有的合并过程可回查。
根据本公开的实施例,基于目标权限角色合并待合并代码分支的步骤可以如图3所示,图3示意性示出了根据本公开实施例的基于目标权限角色合并待合并代码分支的流程图,其中:步骤S301,响应于代码分支的合并指令,判断目标权限角色是否被赋权;步骤S302,若目标权限角色被赋权,则合并待合并代码分支。其中,赋权包括执行第一预设评论操作,合并指令包括执行第二预设评论操作。
根据本公开的实施例,gitlab和github中均有hook机制,该hook机制可以将第一预设评论和第二预设评论通过配置的URL,HTTP POST的方式推送给鉴权服务。另外,为了更进一步地提高代码分支合并的安全性,鉴权服务可以根据推送的合并指令如“+merge”,判断目标权限角色是否被赋权如“+1”,若是,则允许本次合并操作。
本公开提供的代码分支合并方法,在接收到代码分支的合并请求之后,可以预先估计出待合并代码分支在合并时可能涉及的变更文件集合,然后找到该变更文件集合对应的权限文件集合,再根据权限文件集合中包括的用于整个变更文件集合的目标权限角色执行本次合并操作,由于本公开的实施例只需根据权限文件集合中能够管理整个变更文件集合的目标权限角色执行合并,进而可以实现提高合并速度的技术效果,避免了现有技术中代码分支合并无法及时进行、严重拖延项目进度的缺陷。
图4示意性示出了根据本公开实施例的代码分支合并系统的框图。
如图4所示,该代码分支合并系统400可以包括确定模块410、第一查找模块420和合并模块430,其中:
确定模块410用于响应于代码分支的合并请求,确定合并待合并代码分支时发生变化的变更文件集合,其中,变更文件集合中包括至少一个变更文件。
第一查找模块420用于用于查找变更文件集合对应的权限角色集合,其中,权限角色集合中包括用于管理变更文件集合的目标权限角色。
合并模块430用于基于目标权限角色,合并待合并代码分支。
本公开提供的代码分支合并方法,在接收到代码分支的合并请求之后,可以预先估计出待合并代码分支在合并时可能涉及的变更文件集合,然后找到该变更文件集合对应的权限文件集合,再根据权限文件集合中包括的用于整个变更文件集合的目标权限角色执行本次合并操作,由于本公开的实施例只需根据权限文件集合中能够管理整个变更文件集合的目标权限角色执行合并,进而可以实现提高合并速度的技术效果,避免了现有技术中代码分支合并无法及时进行、严重拖延项目进度的缺陷。
作为一种可选的实施例,第一查找模块包括:查找单元,用于查找变更文件集合中每个变更文件对应的权限角色子集合,得到至少一个权限角色子集合,其中,与变更文件对应的权限角色子集合中的权限角色用于管理该变更文件,至少一个权限角色子集合对应的权限角色中包括目标权限角色;以及确定单元,用于将至少一个权限角色子集合确定为权限角色集合。
作为一种可选的实施例,查找单元包括:确定子单元,用于确定变更文件集合中每个变更文件对应的存储路径,得到至少一个存储路径;以及查找子单元,用于基于至少一个存储路径中每个存储路径,查找与该存储路径对应的变更文件的权限角色子集合,得到至少一个权限角色子集合。
作为一种可选的实施例,存储路径包括至少一个目录层,每个目录层的级别不同,查找子单元还用于:针对每个存储路径,查找该存储路径包括的至少一个目录层中级别最低的目录层是否关联有权限角色子集合;以及若是,则提取该权限角色子集合,并继续查找其他存储路径对应的变更文件的权限角色子集合。
作为一种可选的实施例,系统还包括:第二查找模块,在级别最低的目录层没有关联权限角色子集合的情况下,继续查找上一级别的目录层是否关联有权限角色子集合。
作为一种可选的实施例,合并模块包括:判断单元,用于响应于代码分支的合并指令,判断目标权限角色是否被赋权;以及合并单元,用于在目标权限角色被赋权的情况下,合并待合并代码分支。
作为一种可选的实施例,变更文件包括新增文件或者删除文件或者修改文件,确定子单元还用于:确定新增文件的最终存储路径;或者确定删除文件的原始存储路径;或者确定修改文件的原始存储路径。
图5示意性示出了根据本公开实施例的适于实现代码分支合并方法的计算机设备的硬件架构示意图。本实施例中,计算机设备500是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图所示,计算机设备500至少包括但不限于:可通过系统总线相互通信连接存储器510、处理器520、网络接口530。其中:
存储器510至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器510可以是计算机设备500的内部存储模块,例如该计算机设备500的硬盘或内存。在另一些实施例中,存储器510也可以是计算机设备500的外部存储设备,例如该计算机设备500上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器510还可以既包括计算机设备500的内部存储模块也包括其外部存储设备。本实施例中,存储器510通常用于存储安装于计算机设备500的操作系统和各类应用软件,例如代码分支合并方法的程序代码等。此外,存储器510还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器520在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器520通常用于控制计算机设备500的总体操作,例如执行与计算机设备500进行数据交互或者通信相关的控制和处理等。本实施例中,处理器520用于运行存储器510中存储的程序代码或者处理数据。
网络接口530可包括无线网络接口或有线网络接口,该网络接口530通常用于在计算机设备500与其他计算机设备之间建立通信连接。例如,网络接口530用于通过网络将计算机设备500与外部终端相连,在计算机设备500与外部终端之间的建立数据传输通道和通信连接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图5仅示出了具有部件510-530的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器510中的代码分支合并方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器520)所执行,以完成本发明。
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的代码分支合并方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的代码分支合并方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (16)
1.一种代码分支合并方法,其特征在于,所述方法包括:
响应于代码分支的合并请求,确定合并待合并代码分支时发生变化的变更文件集合,其中,所述变更文件集合中包括至少一个变更文件;
查找所述变更文件集合对应的权限角色集合,其中,所述权限角色集合中包括用于管理所述变更文件集合的目标权限角色;以及
基于所述目标权限角色,合并所述待合并代码分支。
2.根据权利要求1所述方法,其特征在于,所述查找所述变更文件集合对应的权限角色集合,包括:
查找所述变更文件集合中每个所述变更文件对应的权限角色子集合,得到至少一个权限角色子集合,其中,与所述变更文件对应的权限角色子集合中的权限角色用于管理该变更文件,所述至少一个权限角色子集合对应的权限角色中包括所述目标权限角色;以及
将所述至少一个权限角色子集合确定为所述权限角色集合。
3.根据权利要求2所述方法,其特征在于,所述查找所述变更文件集合中每个所述变更文件对应的权限角色子集合,得到至少一个权限角色子集合,包括:
确定所述变更文件集合中每个所述变更文件对应的存储路径,得到至少一个存储路径;以及
基于所述至少一个存储路径中每个所述存储路径,查找与该存储路径对应的变更文件的权限角色子集合,得到所述至少一个权限角色子集合。
4.根据权利要求3所述方法,其特征在于,所述存储路径包括至少一个目录层,每个目录层的级别不同,所述基于所述至少一个存储路径中每个所述存储路径,查找与该存储路径对应的变更文件的权限角色子集合,包括:
针对每个存储路径,查找该存储路径包括的所述至少一个目录层中级别最低的目录层是否关联有所述权限角色子集合;以及
若是,则提取所述权限角色子集合,并继续查找其他存储路径对应的变更文件的权限角色子集合。
5.根据权利要求4所述方法,其特征在于,所述方法还包括:
若所述级别最低的目录层没有关联权限角色子集合,则继续查找上一级别的目录层是否关联有所述权限角色子集合。
6.根据权利要求1所述方法,其特征在于,所述基于所述目标权限角色,合并所述待合并代码分支,包括:
响应于代码分支的合并指令,判断所述目标权限角色是否被赋权;以及
若所述目标权限角色被赋权,则合并所述待合并代码分支。
7.根据权利要求3所述方法,其特征在于,所述变更文件包括新增文件或者删除文件或者修改文件,所述确定所述变更文件集合中每个所述变更文件对应的存储路径,包括:
确定所述新增文件的最终存储路径;或者
确定所述删除文件的原始存储路径;或者
确定所述修改文件的原始存储路径。
8.一种代码分支合并系统,其特征在于,所述系统包括:
确定模块,用于响应于代码分支的合并请求,确定合并待合并代码分支时发生变化的变更文件集合,其中,所述变更文件集合中包括至少一个变更文件;
第一查找模块,用于查找所述变更文件集合对应的权限角色集合,其中,所述权限角色集合中包括用于管理所述变更文件集合的目标权限角色;以及
合并模块,用于基于所述目标权限角色,合并所述待合并代码分支。
9.根据权利要求8所述系统,其特征在于,所述第一查找模块包括:
查找单元,用于查找所述变更文件集合中每个所述变更文件对应的权限角色子集合,得到至少一个权限角色子集合,其中,与所述变更文件对应的权限角色子集合中的权限角色用于管理该变更文件,所述至少一个权限角色子集合对应的权限角色中包括所述目标权限角色;以及
确定单元,用于将所述至少一个权限角色子集合确定为所述权限角色集合。
10.根据权利要求9所述系统,其特征在于,所述查找单元包括:
确定子单元,用于确定所述变更文件集合中每个所述变更文件对应的存储路径,得到至少一个存储路径;以及
查找子单元,用于基于所述至少一个存储路径中每个所述存储路径,查找与该存储路径对应的变更文件的权限角色子集合,得到所述至少一个权限角色子集合。
11.根据权利要求10所述系统,其特征在于,所述存储路径包括至少一个目录层,每个目录层的级别不同,所述查找子单元还用于:
针对每个存储路径,查找该存储路径包括的所述至少一个目录层中级别最低的目录层是否关联有所述权限角色子集合;以及
若是,则提取所述权限角色子集合,并继续查找其他存储路径对应的变更文件的权限角色子集合。
12.根据权利要求11所述系统,其特征在于,所述系统还包括:
第二查找模块,在所述级别最低的目录层没有关联所述权限角色子集合的情况下,继续查找上一级别的目录层是否关联有所述权限角色子集合。
13.根据权利要求8所述系统,其特征在于,所述合并模块包括:
判断单元,用于响应于代码分支的合并指令,判断所述目标权限角色是否被赋权;以及
合并单元,用于在所述目标权限角色被赋权的情况下,合并所述待合并代码分支。
14.根据权利要求10所述系统,其特征在于,所述变更文件包括新增文件或者删除文件或者修改文件,所述确定子单元还用于:
确定所述新增文件的最终存储路径;或者
确定所述删除文件的原始存储路径;或者
确定所述修改文件的原始存储路径。
15.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现权利要求1至7任一项所述方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时用于实现权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811290857.6A CN111125744B (zh) | 2018-10-31 | 2018-10-31 | 代码分支合并方法、系统、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811290857.6A CN111125744B (zh) | 2018-10-31 | 2018-10-31 | 代码分支合并方法、系统、计算机设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111125744A CN111125744A (zh) | 2020-05-08 |
CN111125744B true CN111125744B (zh) | 2022-04-05 |
Family
ID=70494407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811290857.6A Active CN111125744B (zh) | 2018-10-31 | 2018-10-31 | 代码分支合并方法、系统、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111125744B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113741978A (zh) * | 2020-05-29 | 2021-12-03 | 阿里巴巴集团控股有限公司 | 流水线配置方法、流水线运行方法、装置及设备 |
CN113806595B (zh) * | 2021-08-13 | 2022-08-12 | 荣耀终端有限公司 | 一种代码搜索系统生成方法、代码搜索方法和搜索服务器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902402A (zh) * | 2010-07-21 | 2010-12-01 | 中兴通讯股份有限公司 | 一种用户权限管理方法、装置 |
US9245108B1 (en) * | 2012-03-13 | 2016-01-26 | Bromium, Inc. | Dynamic adjustment of the file format to identify untrusted files |
CN107579865A (zh) * | 2017-10-18 | 2018-01-12 | 北京奇虎科技有限公司 | 分布式代码服务器的权限管理方法、装置及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7062750B2 (en) * | 2001-07-16 | 2006-06-13 | Microsoft Corporation | Accessing remote stores of source and symbol data for use by computing tools |
US8661555B2 (en) * | 2010-11-29 | 2014-02-25 | Sap Ag | Role-based access control over instructions in software code |
US10171471B2 (en) * | 2016-01-10 | 2019-01-01 | International Business Machines Corporation | Evidence-based role based access control |
US10248801B2 (en) * | 2016-10-07 | 2019-04-02 | American Express Travel Related Services Company, Inc. | Systems and methods for role-based file access control |
-
2018
- 2018-10-31 CN CN201811290857.6A patent/CN111125744B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902402A (zh) * | 2010-07-21 | 2010-12-01 | 中兴通讯股份有限公司 | 一种用户权限管理方法、装置 |
US9245108B1 (en) * | 2012-03-13 | 2016-01-26 | Bromium, Inc. | Dynamic adjustment of the file format to identify untrusted files |
CN107579865A (zh) * | 2017-10-18 | 2018-01-12 | 北京奇虎科技有限公司 | 分布式代码服务器的权限管理方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111125744A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10165007B2 (en) | Securing data usage in computing devices | |
US20170364669A1 (en) | Restricted accounts on a mobile platform | |
US10540368B2 (en) | System and method for resolving synchronization conflicts | |
US20160232374A1 (en) | Permission control method and apparatus | |
US20160070431A1 (en) | Sync based on navigation history | |
US10069832B2 (en) | Ephemeral applications | |
CN109669709B (zh) | 一种区块链升级的数据迁移方法及数据迁移系统 | |
US20150033327A1 (en) | Systems and methodologies for managing document access permissions | |
CN106789249B (zh) | 热更新方法、客户端及服务器 | |
US9665732B2 (en) | Secure Download from internet marketplace | |
CN111181975A (zh) | 一种账号管理方法、装置、设备及存储介质 | |
CN109460252B (zh) | 基于git的配置文件处理方法、装置和计算机设备 | |
CN111125744B (zh) | 代码分支合并方法、系统、计算机设备及可读存储介质 | |
CN111885184A (zh) | 高并发场景下热点访问关键字处理方法和装置 | |
CN111125721A (zh) | 一种进程启动的控制方法、计算机设备和可读存储介质 | |
CN113535206B (zh) | 多版本代码升级方法及系统 | |
CN115033551A (zh) | 一种数据库迁移方法、装置、电子设备及存储介质 | |
US10255174B2 (en) | Common cache pool for applications | |
CN111125743B (zh) | 权限管理方法、系统、计算机设备及计算机可读存储介质 | |
CN116340970A (zh) | 业务系统登陆方法、装置、电子设备和可读存储介质 | |
CN103491113B (zh) | 一种信息聚合文件的同步方法、装置及系统 | |
CN111124467B (zh) | 权限角色的展示方法、系统、计算机设备及可读存储介质 | |
US11010346B2 (en) | Methods and apparatus for managing access to file content | |
US11050621B2 (en) | Client, server and differential upgrade method | |
CN115002218B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |