CN105320512B - 分配主干权限的方法及装置 - Google Patents

分配主干权限的方法及装置 Download PDF

Info

Publication number
CN105320512B
CN105320512B CN201410370470.7A CN201410370470A CN105320512B CN 105320512 B CN105320512 B CN 105320512B CN 201410370470 A CN201410370470 A CN 201410370470A CN 105320512 B CN105320512 B CN 105320512B
Authority
CN
China
Prior art keywords
trunk
permission
request
interflow
authority application
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
Application number
CN201410370470.7A
Other languages
English (en)
Other versions
CN105320512A (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410370470.7A priority Critical patent/CN105320512B/zh
Publication of CN105320512A publication Critical patent/CN105320512A/zh
Application granted granted Critical
Publication of CN105320512B publication Critical patent/CN105320512B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种分配主干权限的方法及装置,属于计算机领域。所述方法包括:检测主干权限的当前状态;获取已接收的权限申请请求中携带的申请原因和所述主干权限的用途标记,所述已接收的权限申请请求用于获取所述主干权限;根据所述主干权限的当前状态、所述用途标记和所述申请原因,进行主干权限的分配。所述装置包括:第一检测模块、获取模块和分配模块。本发明无需管理员手动地分配主干权限,操作简单,提高了分配主干权限的效率,进而提高了代码提交效率。

Description

分配主干权限的方法及装置
技术领域
本发明涉及计算机领域,特别涉及一种分配主干权限的方法及装置。
背景技术
目前,在众多软件开发团队中,尤其是大型软件开发团队,均推崇使用“分支开发合流到主干”的软件开发模式,即,开发人员在本地完成软件新功能的代码开发后,将开发的代码提交到版本控制服务器的一个分支上,再将该分支上的代码合流到版本控制服务器的主干上,最终主干上的代码可以编译成软件的发布版本。然而,当主干上的代码出现漏洞时,还需要直接对主干上的代码进行漏洞修复。所以,主干上的代码主要会出现合流和漏洞修复两个操作,但是,不管是合流还是漏洞修复,在对主干代码进行操作之前,都需要获取主干权限。现阶段获取主干权限时,开发人员可以向管理员申请主干权限,当管理员确定该开发人员具有拥有主干权限的资格时,该管理员需要手动地开通主干权限,操作复杂,降低了分配主干权限的效率,进而降低了代码提交效率。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种分配主干权限的方法及装置。所述技术方案如下:
一方面,提供了一种分配主干权限的方法,所述方法包括:
检测主干权限的当前状态;
获取已接收的权限申请请求中携带的申请原因和所述主干权限的用途标记,所述已接收的权限申请请求用于获取所述主干权限;
根据所述主干权限的当前状态、所述用途标记和所述申请原因,进行主干权限的分配。
另一方面,提供了一种分配主干权限的装置,所述装置包括:
第一检测模块,用于检测主干权限的当前状态;
获取模块,用于获取已接收的权限申请请求中携带的申请原因和所述主干权限的用途标记,所述已接收的权限申请请求用于获取所述主干权限;
分配模块,用于根据所述主干权限的当前状态、所述用途标记和所述申请原因,进行主干权限的分配。
在本发明实施例中,版本控制服务器自动检测主干权限的当前状态,以及获取已接收的权限申请请求中携带的申请原因和主干权限的用途标记。根据主干权限的当前状态、用途标记和申请原因,进行主干权限的分配,无需管理员手动地分配主干权限,操作简单,提高了分配主干权限的效率,进而提高了代码提交效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种分配主干权限的方法流程图;
图2是本发明实施例提供的一种分配主干权限的方法流程图;
图3是本发明实施例提供的一种分配主干权限的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
为了便于对本发明的理解,在此对本发明涉及到的一些概念进行解释:
主干:版本控制服务器中稳定代码的保存路径,由此路径可以编译出软件的发布版本。通常情况下一个软件项目只有一个主干。
分支:版本控制服务器中开发/调试代码的保存路径。开发时会将主干上的代码复制到分支上,然后将分支上的代码导出到本地。在本地完成软件新功能的代码开发后,如果开发的代码测试成功,则将开发的代码上传到分支上,最后将分支上的代码合流到主干上。
合流:将分支上的代码合并到主干,且合流可以检测出分支和主干上的代码冲突。
在对本发明实施例进行详细地解释说明之前,先对本发明实施例的应用场景予以介绍。当开发人员对主干上的代码进行合流或者漏洞修复时,开发人员需要获取版本控制服务器中的主干权限,当管理员确定该开发人员具有拥有主干权限的资格时,该管理员可以手动地开通主干权限操作复杂,降低了分配主干权限的效率,且降低了代码提交效率。另外,当获取到主干权限时,如果该开发人员对主干上的代码进行合流,则该开发人员对应的终端将修改的代码提交给版本控制服务器,使版本控制服务器将提交的代码添加到该分支中,最后,再将该分支中的代码合流到主干中。由于多个开发人员可以同时修改同一个代码文件,当某个开发人员提交了修改代码,之后另外一个开发人员再提交同一代码文件的修改代码时,会出现代码冲突的问题,此时,为了解决该问题,需要后续提交代码的终端同步主干上最新的代码,而在同步代码的过程中,可能又有其他开发人员对主干上的代码做了改动,此时又需要再进行同步,如此反复开销较大。因此,本发明实施例提供了一种分配主干权限的方法,该方法可以是版本控制服务器自动地进行主干权限的分配,无需人工操作,提高了分配主干权限的效率,进而提高了代码提交效率。另外,该方法还可以解决代码冲突的问题,降低代码提交的开销。
图1是本发明实施例提供的一种分配主干权限的方法流程图。参见图1,该方法包括:
步骤101:检测主干权限的当前状态。
步骤102:获取已接收的权限申请请求中携带的申请原因和主干权限的用途标记,已接收的权限申请请求用于获取主干权限。
步骤103:根据主干权限的当前状态、获取的用途标记和获取的申请原因,进行主干权限的分配。
在本发明实施例中,版本控制服务器自动检测主干权限的当前状态,以及获取已接收的权限申请请求中携带的申请原因和主干权限的用途标记。根据主干权限的当前状态、用途标记和申请原因,进行主干权限的分配,无需管理员手动地分配主干权限,操作简单,提高了分配主干权限的效率,进而提高了代码提交效率。
可选地,根据主干权限的当前状态、获取的用途标记和获取的申请原因,进行主干权限的分配,包括:
根据主干权限的当前状态和获取的用途标记,判断是否分配主干权限;
如果分配主干权限,则根据获取的用途标记和获取的申请原因,进行主干权限的分配。
可选地,根据主干权限的当前状态和获取的用途标记,判断是否分配主干权限,包括:
如果获取的用途标记指示主干权限当前用于漏洞修复,则确定分配主干权限;
如果获取的用途标记指示主干权限当前用于合流且主干权限的当前状态为空闲状态,则确定分配主干权限;
如果获取的用途标记指示主干权限当前用于合流且主干权限的当前状态为占用状态,则确定不分配主干权限。
可选地,根据获取的用途标记和获取的申请原因,进行主干权限的分配,包括:
如果获取的用途标记指示主干权限当前用于漏洞修复,则根据获取的申请原因,从已接收的权限申请请求中选择用于漏洞修复的权限申请请求;
向选择的权限申请请求对应的终端分配主干权限;
如果获取的用途标记指示主干权限当前用于合流,则根据获取的申请原因,从已接收的权限申请请求中选择用于合流的权限申请请求;
从用于合流的权限申请请求中选择第一个申请主干权限的权限申请请求;
向第一个申请主干权限的权限申请请求对应的终端分配主干权限。
可选地,从用于合流的权限申请请求中选择第一个申请主干权限的权限申请请求,包括:
获取用于合流的权限申请请求中携带的申请时间;
根据获取的申请时间,从用于合流的权限申请请求中选择第一个申请主干权限的权限申请请求。
可选地,从用于合流的权限申请请求中选择第一个申请主干权限的权限申请请求,包括:
从用于合流的权限申请请求所属的申请队列中,按照从前到后的顺序,选择第一个用于合流的权限申请请求,申请队列中存储的权限申请请求是按照申请时间的从小到大的顺序进行存储;
将选择的第一个用于合流的权限申请请求确定为第一个申请主干权限的权限申请请求。
可选地,该方法还包括:
接收终端发送的权限申请请求,该权限申请请求中携带主干权限对应的主干标识、申请原因和申请时间;
根据申请时间和主干标识,将接收的权限申请请求添加到主干标识对应的申请队列中。
可选地,根据主干权限的当前状态、获取的用途标记和获取的申请原因,进行主干权限的分配之后,还包括:
如果主干权限分配给用于合流的终端,则检测终端的合流操作是否完成;
如果合流操作完成,则收回主干权限;
如果主干权限分配给用于漏洞修复的终端,则检测主干权限的分配时长;
如果分配时长大于或等于时长阈值,则收回主干权限。
上述所有可选技术方案,均可按照任意结合形成本发明的可选实施例,在此不再一一赘述。
图2是本发明实施例提供的一种分配主干权限的方法流程图。该方法的执行主体为版本控制服务器。参见图2,该方法包括:
步骤201:检测主干权限的当前状态。
具体地,版本控制服务器可以周期性地检测主干权限的当前状态。
可选地,当版本控制服务器每接收到一个权限申请请求时,可以检测主干权限的当前状态。
其中,主干权限的当前状态可以包括占用状态和空闲状态。当主干权限的当前状态为占用状态时,则表示主干权限已被分配。当主干权限的当前状态为空闲状态时,则表示主干权限未被分配。
当版本控制服务器周期性地检测主干权限的当前状态时,周期长度是事先设置的,可以为1秒、2秒、3秒等,本发明实施例对此不做具体限定。另外,合理设置周期长度,可以保证分配主干权限的实时性。
进一步地,在本发明实施例中,当终端获取主干权限时,终端可以向版本控制服务器发送权限申请请求,该权限申请请求中携带主干权限对应的主干标识、申请原因和申请时间。
其中,主干标识用于标记该主干,且主干标识可以为该主干的存储路径、该主干所属项目的名称等等。
步骤202:获取已接收的权限申请请求中携带的申请原因和主干权限的用途标记,已接收的权限申请请求用于获取主干权限。
具体地,版本控制服务器从已接收的权限申请请求中获取该权限申请请求携带的申请原因,以及获取主干权限的用途标记。
其中,申请原因用于指示终端申请主干权限的用途,且申请原因可以包括合流和漏洞修复,还可以包括其他的原因,比如,主干文件清理,本发明实施例不再一一列举申请原因。但是对于其他的申请原因,也可以按照本发明实施提供的方法获取主干权限。
其中,用途标记用于指示主干权限的当前用途,在本发明实施例中,主干权限的用途可以为合流和漏洞修复。另外,用途标记可以为标识、数值等,当用途标记为标识时,为该用途标记设置第一标识和第二标识,第一标识可以指示合流,第二标识可以指示漏洞修复。当然,第一标识还可以指示漏洞修复,第二标识还可以指示合流。本发明实施例对此不做具体限定。同理,当用途标记为数值时,为该用途标记设置第一数值和第二数值,第一数值可以指示合流,第二数值可以指示漏洞修复。当然,第一数值还可以指示漏洞修复,第二数值还可以指示合流。本发明实施例对此不做具体限定。
需要补充说明的是,第一标识和第二标识可以为该主干权限的用途名称,第一数值和第二数值可以为0、1、2等,本发明实施例对此不做具体限定。
由于多个终端可能会在同一个周期长度内向版本控制服务器发送权限申请请求,此时,当版本控制服务器获取已接收的权限申请请求中携带的申请原因时,可能会获取到多个申请原因。当版本控制服务器接收到一个权限申请请求时,该版本控制服务器执行本发明实施例提供的方法时,此时,获取已接收的权限申请请求中携带的申请原因为一个。
步骤203:根据主干权限的当前状态和主干权限的用途标记,判断是否分配主干权限。
具体地,如果主干权限的用途标记指示主干权限当前用于漏洞修复,则确定分配主干权限。如果主干权限的用途标记指示主干权限当前用于合流且主干权限的当前状态为空闲状态,则确定分配主干权限。如果主干权限的用途标记指示主干权限当前用于合流且主干权限的当前状态为占用状态,则确定不分配主干权限。
其中,在本发明实施例中,合流操作往往会涉及到较多文件的改动,且需要精确统计合并的代码差异量,需要具有独占性;而漏洞修复通常只涉及到单个文件的改动,可以同时支持多个终端的漏洞修复。因此,本发明实施例中,当主干权限当前用于漏洞修复时,可以对已接收的权限申请请求中所有用于漏洞修复的权限申请请求对应的终端分配主干权限。当主干权限当前用于合流时,却只能对已接收的权限申请请求中的一个权限申请请求对应的终端分配主干权限。
需要补充说明的是,在本发明实施例中,根据主干权限的当前状态和主干权限的用途标记,判断是否分配主干权限的前提条件是版本控制服务器已经接收到权限申请请求,此时,如果主干权限的用途标记指示主干权限当前用于合流且主干权限的当前状态为空闲状态,则确定分配主干权限。当版本控制服务器没有接收到权限申请请求或者接收的权限申请请求中携带的申请原因不是合流或者漏洞修复,此时,如果主干权限的当前状态为空闲状态,则版本控制服务器将翻转主干权限的用途标记。即,如果主干权限的用途标记指示主干权限当前用于合流,则将主干权限的用途标记修改为用于漏洞修复的标记;如果主干权限的用途标记指示主干权限当前用户漏洞修复,则将主干权限的用途标识修改为用于合流的标记。例如,用途标记为数值,且第一数值指示合流,第二数值指示漏洞修复。此时,如果主干权限的用途标记为第一数值,则可以将用途标记修改为第二数值。如果主干权限的用途标记为第二数值,则可以将用途标记修改为第一数值。
步骤204:如果分配主干权限且主干权限的用途标记指示主干权限当前用于漏洞修复,则根据获取的申请原因,从已接收的权限申请请求中选择用于漏洞修复的权限申请请求。
步骤205:向选择的权限申请请求对应的终端分配主干权限。
其中,当版本控制服务器向选择的权限申请请求对应的终端分配主干权限时,版本控制服务器向这些终端发送通知消息,以提示这些终端获取到主干权限。之后,这些终端就可以对版本控制服务器中主干上的代码进行漏洞修复。
步骤206:如果分配主干权限且主干权限的用途标记指示主干权限当前用于合流,则根据获取的申请原因,从已接收的权限申请请求中选择用于合流的权限申请请求。
步骤207:从用于合流的权限申请请求中选择第一个申请主干权限的权限申请请求。
其中,在本发明实施例中,由于权限申请请求中携带申请时间,所以,版本控制服务器可以将接收的权限申请请求存储在一个申请队列中,也可以不存储在一个申请队列中。基于此种情况,从用于合流的权限申请请求中选择第一个申请主干权限的权限申请请求可以包括两种方式:
第一种方式,获取用于合流的权限申请请求中携带的申请时间。根据获取的申请时间,从用于合流的权限申请请求中选择第一个申请主干权限的权限申请请求。
其中,第一种方式是没有将权限申请请求存储在申请队列中。且根据获取的申请时间,从用于合流的权限申请请求中选择第一个申请主干权限的权限申请请求的具体操作可以为:将获取的申请时间进行比较,从获取的申请时间中选择最早的申请时间,将最早的申请时间对应的权限申请请求作为第一个申请主干权限的申请请求。
第二种方式,从用于合流的权限申请请求所属的申请队列中,按照从前到后的顺序,选择第一个用于合流的权限申请请求,申请队列中存储的权限申请请求是按照申请时间的从小到大的顺序进行存储。将选择的第一个用于合流的权限申请请求确定为第一个申请主干权限的权限申请请求。
其中,第二种方式时将权限申请请求存储在申请队列中。
针对于第二种方式,当版本控制服务器接收到终端发送的权限申请请求时,该权限申请请求中携带主干权限对应的主干标识、申请原因和申请时间。版本控制服务器根据该申请时间和该主干标识,将接收的权限申请请求添加到该主干标识对应的申请队列中。且版本控制服务器根据该申请时间和该主干标识,将接收的权限申请请求添加到该主干标识对应的申请队列中的具体操作可以为:版本控制服务器根据该主干标识,查找该主干标识对应的申请队列,根据该申请时间,按照申请时间从小到大的顺序,将接收的权限申请请求添加到查找的申请队列中。
其中,当存在多个申请时间相同的权限申请请求时,可以随机排列该多个权限申请请求。
步骤208:向第一个申请主干权限的权限申请请求对应的终端分配主干权限。
其中,当版本控制服务器向第一个申请主干权限的权限申请请求对应的终端分配主干权限时,版本控制服务器向该终端发送通知消息,以提示该终端获取到主干权限。之后,该终端就可以向版本控制服务器中分支提交代码,并将分支上的代码合流到主干上。
其中,将主干权限分配给第一个申请主干权限的权限申请请求对应的终端,可以避免多个终端同时合流时,出现代码冲突的问题。另外,就算出现代码冲突的问题,该终端也只需从主干上同步一次最新的代码,无需反复地同步,降低了代码提交的开销。
进一步地,分配主干权限之后,为了方便其他的终端获取到主干权限,需要及时收回主干权限,具体为:如果主干权限分配给用于合流的终端,则检测该终端的合流操作是否完成。如果合流操作完成,则收回主干权限。如果主干权限分配给用于漏洞修复的终端,则检测主干权限的分配时长。如果分配时长大于或等于时长阈值,则收回主干权限。
其中,合流的过程具体可以为:版本控制服务器检测分支上的代码与主干上的代码是否存在差异,如果存在差异,则对分支上的代码进行编译,并测试编译后的代码,如果测试通过,则可以将分支上的代码合并到主干上,此时,合流完成。
进一步地,当版本控制服务器将分支上的代码合流到主干上时,版本控制服务器需要检测分支上的代码是否与主干上的代码存在代码冲突,如果存在代码冲突,则版本控制服务器可以向终端发送一个代码冲突提示信息,以使开发人员解决该问题。
其中,分配时长是事先设置的,且分配时长可以为20分钟,也可以为30分钟,本发明实施例对此不做具体限定。另外,当分配时长大于或等于时长阈值,则收回主干权限,如果终端还需要漏洞修复时,该终端可以再申请主干权限。
进一步地,当版本控制服务器收回主干权限时,版本控制服务器向终端发送权限收回提示信息,以提示开发人员进行后续的工作。
进一步地,在本发明实施例中,版本控制服务器每向终端分配一次主干权限,均会记载该终端获取到该主干权限的时间,以及释放该主干权限的时间,以便与后续代码出现问题时追溯到对应的开发人员。
其中,通过上述步骤分配主干权限以及收回主干权限,保证主干权限不会出现冲突,且减少了人工操作出错的概率。
在本发明实施例中,版本控制服务器自动检测主干权限的当前状态,以及获取已接收的权限申请请求中携带的申请原因和主干权限的用途标记。根据主干权限的当前状态、用途标记和申请原因,进行主干权限的分配,无需管理员手动地分配主干权限,操作简单,提高了分配主干权限的效率,进而提高了代码提交效率。另外,当版本控制服务器进行主干权限的分配时,发现存在多个终端发送的用于合流的权限申请请求,此时,版本控制服务器只将主干权限分配给第一个申请主干权限的终端,而不分配给其他的终端,避免了多个终端同时进行合流时出现代码冲突的问题。
图3是本发明实施例提供的一种分配主干权限的装置结构示意图。参见图3,该装置包括:第一检测模块301、获取模块302和分配模块303;
第一检测模块301,用于检测主干权限的当前状态;
获取模块302,用于获取已接收的权限申请请求中携带的申请原因和主干权限的用途标记,已接收的权限申请请求用于获取主干权限;
分配模块303,用于根据主干权限的当前状态、获取的用途标记和获取的申请原因,进行主干权限的分配。
可选地,分配模块303包括:
判断单元,用于根据主干权限的当前状态和获取的用途标记,判断是否分配主干权限;
分配单元,用于如果分配主干权限,则根据获取的用途标记和获取的申请原因,进行主干权限的分配。
可选地,判断单元包括:
第一确定子单元,用于如果获取的用途标记指示主干权限当前用于漏洞修复,则确定分配主干权限;
第二确定子单元,用于如果获取的用途标记指示主干权限当前用于合流且主干权限的当前状态为空闲状态,则确定分配主干权限;
第三确定子单元,用于如果获取的用途标记指示主干权限当前用于合流且主干权限的当前状态为占用状态,则确定不分配主干权限。
可选地,分配单元包括:
第一选择子单元,用于如果获取的用途标记指示主干权限当前用于漏洞修复,则根据获取的申请原因,从已接收的权限申请请求中选择用于漏洞修复的权限申请请求;
第一分配子单元,用于向选择的权限申请请求对应的终端分配主干权限;
第二选择子单元,用于如果获取的用途标记指示主干权限当前用于合流,则根据获取的申请原因,从已接收的权限申请请求中选择用于合流的权限申请请求;
第三选择子单元,用于从用于合流的权限申请请求中选择第一个申请主干权限的权限申请请求;
第二分配子单元,用于向第一个申请主干权限的权限申请请求对应的终端分配主干权限。
可选地,
第三选择子单元,具体用于:
获取用于合流的权限申请请求中携带的申请时间;
根据获取的申请时间,从用于合流的权限申请请求中选择第一个申请主干权限的权限申请请求。
可选地,
第三选择子单元,具体用于:
从用于合流的权限申请请求所属的申请队列中,按照从前到后的顺序,选择第一个用于合流的权限申请请求,该申请队列中存储的权限申请请求是按照申请时间的从小到大的顺序进行存储;
将选择的第一个用于合流的权限申请请求确定为第一个申请主干权限的权限申请请求。
可选地,该装置还包括:
接收模块,用于接收终端发送的权限申请请求,该权限申请请求中携带主干权限对应的主干标识、申请原因和申请时间;
添加模块,用于根据该申请时间和该主干标识,将接收的权限申请请求添加到主干标识对应的申请队列中。
可选地,该装置还包括:
第二检测模块,用于如果主干权限分配给用于合流的终端,则检测终端的合流操作是否完成;
第一收回模块,用于如果合流操作完成,则收回主干权限;
第三检测模块,用于如果主干权限分配给用于漏洞修复的终端,则检测主干权限的分配时长;
第二收回模块,用于如果分配时长大于或等于时长阈值,则收回主干权限。
在本发明实施例中,版本控制服务器自动检测主干权限的当前状态,以及获取已接收的权限申请请求中携带的申请原因和主干权限的用途标记。根据主干权限的当前状态、用途标记和申请原因,进行主干权限的分配,无需管理员手动地分配主干权限,操作简单,提高了分配主干权限的效率,进而提高了代码提交效率。
需要说明的是:上述实施例提供的分配主干权限的装置在分配主干权限时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的分配主干权限的装置与分配主干权限的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种分配主干权限的方法,其特征在于,应用于版本控制服务器,所述方法包括:
检测所述版本控制服务器中的主干权限的当前状态,所述主干权限是指能够对所述版本控制服务器中的主干上的代码进行操作的权限,所述主干是指所述版本控制服务器中稳定代码的保存路径;
获取已接收的权限申请请求中携带的申请原因和所述主干权限的用途标记,所述已接收的权限申请请求用于获取所述主干权限,所述申请原因包括合流和漏洞修复,所述用途标记用于指示所述主干权限的当前用途;
根据所述主干权限的当前状态、所述用途标记和所述申请原因,进行主干权限的分配。
2.如权利要求1所述的方法,其特征在于,所述根据所述主干权限的当前状态、所述用途标记和所述申请原因,进行主干权限的分配,包括:
根据所述主干权限的当前状态和所述用途标记,判断是否分配所述主干权限;
如果分配所述主干权限,则根据所述用途标记和所述申请原因,进行主干权限的分配。
3.如权利要求2所述的方法,其特征在于,所述根据所述主干权限的当前状态和所述用途标记,判断是否分配所述主干权限,包括:
如果所述用途标记指示所述主干权限当前用于漏洞修复,则确定分配所述主干权限;
如果所述用途标记指示所述主干权限当前用于合流且所述主干权限的当前状态为空闲状态,则确定分配所述主干权限;
如果所述用途标记指示所述主干权限当前用于合流且所述主干权限的当前状态为占用状态,则确定不分配所述主干权限。
4.如权利要求2所述的方法,其特征在于,所述根据所述用途标记和所述申请原因,进行主干权限的分配,包括:
如果所述用途标记指示所述主干权限当前用于漏洞修复,则根据所述申请原因,从所述已接收的权限申请请求中选择用于漏洞修复的权限申请请求;
向选择的权限申请请求对应的终端分配所述主干权限;
如果所述用途标记指示所述主干权限当前用于合流,则根据所述申请原因,从所述已接收的权限申请请求中选择用于合流的权限申请请求;
从所述用于合流的权限申请请求中选择第一个申请主干权限的权限申请请求;
向所述第一个申请主干权限的权限申请请求对应的终端分配所述主干权限。
5.如权利要求4所述的方法,其特征在于,所述从所述用于合流的权限申请请求中选择第一个申请主干权限的权限申请请求,包括:
获取所述用于合流的权限申请请求中携带的申请时间;
根据获取的申请时间,从所述用于合流的权限申请请求中选择第一个申请主干权限的权限申请请求。
6.如权利要求4所述的方法,其特征在于,所述从所述用于合流的权限申请请求中选择第一个申请主干权限的权限申请请求,包括:
从所述用于合流的权限申请请求所属的申请队列中,按照从前到后的顺序,选择第一个用于合流的权限申请请求,所述申请队列中存储的权限申请请求是按照申请时间的从小到大的顺序进行存储;
将选择的第一个用于合流的权限申请请求确定为第一个申请主干权限的权限申请请求。
7.如权利要求1-6任一权利要求所述的方法,其特征在于,所述方法还包括:
接收终端发送的权限申请请求,所述权限申请请求中携带所述主干权限对应的主干标识、申请原因和申请时间;
根据所述申请时间和所述主干标识,将接收的权限申请请求添加到所述主干标识对应的申请队列中。
8.如权利要求1-6任一权利要求所述的方法,其特征在于,所述根据所述主干权限的当前状态、所述用途标记和所述申请原因,进行主干权限的分配之后,还包括:
如果所述主干权限分配给用于合流的终端,则检测所述终端的合流操作是否完成;
如果所述合流操作完成,则收回所述主干权限;
如果所述主干权限分配给用于漏洞修复的终端,则检测所述主干权限的分配时长;
如果所述分配时长大于或等于时长阈值,则收回所述主干权限。
9.一种分配主干权限的装置,其特征在于,应用于版本控制服务器,所述装置包括:
第一检测模块,用于检测所述版本控制服务器中的主干权限的当前状态,所述主干权限是指能够对所述版本控制服务器中的主干上的代码进行操作的权限,所述主干是指所述版本控制服务器中稳定代码的保存路径;
获取模块,用于获取已接收的权限申请请求中携带的申请原因和所述主干权限的用途标记,所述已接收的权限申请请求用于获取所述主干权限,所述申请原因包括合流和漏洞修复,所述用途标记用于指示所述主干权限的当前用途;
分配模块,用于根据所述主干权限的当前状态、所述用途标记和所述申请原因,进行主干权限的分配。
10.如权利要求9所述的装置,其特征在于,所述分配模块包括:
判断单元,用于根据所述主干权限的当前状态和所述用途标记,判断是否分配所述主干权限;
分配单元,用于如果分配所述主干权限,则根据所述用途标记和所述申请原因,进行主干权限的分配。
11.如权利要求10所述的装置,其特征在于,所述判断单元包括:
第一确定子单元,用于如果所述用途标记指示所述主干权限当前用于漏洞修复,则确定分配所述主干权限;
第二确定子单元,用于如果所述用途标记指示所述主干权限当前用于合流且所述主干权限的当前状态为空闲状态,则确定分配所述主干权限;
第三确定子单元,用于如果所述用途标记指示所述主干权限当前用于合流且所述主干权限的当前状态为占用状态,则确定不分配所述主干权限。
12.如权利要求10所述的装置,其特征在于,所述分配单元包括:
第一选择子单元,用于如果所述用途标记指示所述主干权限当前用于漏洞修复,则根据所述申请原因,从所述已接收的权限申请请求中选择用于漏洞修复的权限申请请求;
第一分配子单元,用于向选择的权限申请请求对应的终端分配所述主干权限;
第二选择子单元,用于如果所述用途标记指示所述主干权限当前用于合流,则根据所述申请原因,从所述已接收的权限申请请求中选择用于合流的权限申请请求;
第三选择子单元,用于从所述用于合流的权限申请请求中选择第一个申请主干权限的权限申请请求;
第二分配子单元,用于向所述第一个申请主干权限的权限申请请求对应的终端分配所述主干权限。
13.如权利要求12所述的装置,其特征在于,
所述第三选择子单元,具体用于:
获取所述用于合流的权限申请请求中携带的申请时间;
根据获取的申请时间,从所述用于合流的权限申请请求中选择第一个申请主干权限的权限申请请求。
14.如权利要求12所述的装置,其特征在于,
所述第三选择子单元,具体用于:
从所述用于合流的权限申请请求所属的申请队列中,按照从前到后的顺序,选择第一个用于合流的权限申请请求,所述申请队列中存储的权限申请请求是按照申请时间的从小到大的顺序进行存储;
将选择的第一个用于合流的权限申请请求确定为第一个申请主干权限的权限申请请求。
15.如权利要求9-14任一权利要求所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收终端发送的权限申请请求,所述权限申请请求中携带所述主干权限对应的主干标识、申请原因和申请时间;
添加模块,用于根据所述申请时间和所述主干标识,将接收的权限申请请求添加到所述主干标识对应的申请队列中。
16.如权利要求9-14任一权利要求所述的装置,其特征在于,所述装置还包括:
第二检测模块,用于如果所述主干权限分配给用于合流的终端,则检测所述终端的合流操作是否完成;
第一收回模块,用于如果所述合流操作完成,则收回所述主干权限;
第三检测模块,用于如果所述主干权限分配给用于漏洞修复的终端,则检测所述主干权限的分配时长;
第二收回模块,用于如果所述分配时长大于或等于时长阈值,则收回所述主干权限。
CN201410370470.7A 2014-07-30 2014-07-30 分配主干权限的方法及装置 Active CN105320512B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410370470.7A CN105320512B (zh) 2014-07-30 2014-07-30 分配主干权限的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410370470.7A CN105320512B (zh) 2014-07-30 2014-07-30 分配主干权限的方法及装置

Publications (2)

Publication Number Publication Date
CN105320512A CN105320512A (zh) 2016-02-10
CN105320512B true CN105320512B (zh) 2019-08-06

Family

ID=55247944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410370470.7A Active CN105320512B (zh) 2014-07-30 2014-07-30 分配主干权限的方法及装置

Country Status (1)

Country Link
CN (1) CN105320512B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109271756B (zh) * 2017-07-14 2022-12-20 迈普通信技术股份有限公司 权限控制方法、装置及服务器
CN110879883B (zh) * 2019-11-29 2021-05-28 杭州迪普科技股份有限公司 软件缺陷的修复授权方法、装置、计算机设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102088484A (zh) * 2010-12-20 2011-06-08 南京中兴新软件有限责任公司 一种分布式文件系统的写锁定方法及系统
CN103368765A (zh) * 2012-04-10 2013-10-23 阿里巴巴集团控股有限公司 一种管理系统权限添加方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102739623B (zh) * 2011-04-15 2014-12-31 华为终端有限公司 授权方法和终端设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102088484A (zh) * 2010-12-20 2011-06-08 南京中兴新软件有限责任公司 一种分布式文件系统的写锁定方法及系统
CN103368765A (zh) * 2012-04-10 2013-10-23 阿里巴巴集团控股有限公司 一种管理系统权限添加方法和装置

Also Published As

Publication number Publication date
CN105320512A (zh) 2016-02-10

Similar Documents

Publication Publication Date Title
CN105302716B (zh) 合流开发模式下的测试方法、装置
CN107015842B (zh) 一种服务器端程序编译和发布的管理方法及系统
WO2016197768A1 (zh) 芯片验证方法、装置及系统
CN103298016B (zh) 移动终端的测试系统
CN111190810B (zh) 执行测试任务的方法、装置、服务器和存储介质
WO2019104916A1 (zh) 测试用例的开发角色创建方法、装置、设备及存储介质
CN105426278A (zh) 一种客户端设备性能测试方法及系统
CN112631846B (zh) 一种故障演练方法、装置、计算机设备及存储介质
CN108459850B (zh) 生成测试脚本的方法、装置及系统
CN110162481A (zh) 一种软件测试方法、装置、设备以及存储介质
CN106681924A (zh) 一种软件测试方法及系统
CN104077217A (zh) 代码文件的编译发布方法及系统
CN106612204B (zh) 业务校验方法及装置
CN107193730A (zh) 一种自动化的接口测试方法
CN108399303A (zh) 一种充电桩的模拟方法和装置
CN104461854A (zh) 一种舰船装备软件通用仿真测试平台及其构建方法
CN107506294A (zh) 可视化自动化测试方法、装置、存储介质和计算机设备
CN105320512B (zh) 分配主干权限的方法及装置
CN115860143A (zh) 算子模型生成方法、装置和设备
CN111459631A (zh) 服务器自动化批处理方法及系统
CN110750453B (zh) 基于html5的智能移动端测试方法、系统、服务器及存储介质
CN105975276B (zh) 分布式构建系统及方法
CN113658351A (zh) 一种产品生产的方法、装置、电子设备及存储介质
TWI362002B (en) Method and computer program product for automated generation of message exchange pattern simulation code
CN107729035A (zh) 分布式电池管理系统程序下载及更新方法

Legal Events

Date Code Title Description
C06 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