CN112631652A - 操作指令响应方法、装置、设备和存储介质 - Google Patents

操作指令响应方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN112631652A
CN112631652A CN202011590746.4A CN202011590746A CN112631652A CN 112631652 A CN112631652 A CN 112631652A CN 202011590746 A CN202011590746 A CN 202011590746A CN 112631652 A CN112631652 A CN 112631652A
Authority
CN
China
Prior art keywords
code
branch
source
operation instruction
repository
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
CN202011590746.4A
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.)
Weiyiyun Hangzhou Holding Co ltd
Original Assignee
Weiyiyun Hangzhou Holding 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 Weiyiyun Hangzhou Holding Co ltd filed Critical Weiyiyun Hangzhou Holding Co ltd
Priority to CN202011590746.4A priority Critical patent/CN112631652A/zh
Publication of CN112631652A publication Critical patent/CN112631652A/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

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)
  • Stored Programmes (AREA)

Abstract

本申请提供一种操作指令响应方法、装置、设备和存储介质,该方法包括:接收终端发送的操作请求,所述操作请求中携带有源代码分支的源版本标识和操作指令;根据所述源版本标识,从服务器的预设代码库中读取所述源代码分支的代码;根据所述操作请求,从所述预设代码库中定位所述目标代码仓库;根据所述源代码分支的代码和所述目标代码仓库,响应所述操作指令。本申请实现了自动进行代码分支管理操作,提高代码分支管理的效率。

Description

操作指令响应方法、装置、设备和存储介质
技术领域
本申请涉及信息处理技术领域,具体而言,涉及一种操作指令响应方法、装置、设备和存储介质。
背景技术
Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
日常开发中,Android项目经过模块化,其代码管理,在gitlab上,是以多个仓库的形式存在的。而项目的一次版本迭代,往往涉及多个仓库的Git分支管理操作。
目前最原始的解决方案,是依赖负责人在gitlab代码管理平台,进行手动操作。每次版本迭代过程中,需要专门的负责人针对每个模块仓库逐个进行手动操作管理。依赖人工手动操作,十分耗时烦琐,且容易导致人为操作引起的异常。
发明内容
本申请实施例的目的在于提供一种操作指令响应方法、装置、设备和存储介质,用以实现自动的代码分支管理操作,提高代码分支管理的效率。
本申请实施例第一方面提供了一种操作指令响应方法,包括:接收终端发送的操作请求,所述操作请求中携带有源代码分支的源版本标识和操作指令;根据所述源版本标识,从服务器的预设代码库中读取所述源代码分支的代码;根据所述操作请求,从所述预设代码库中定位所述目标代码仓库;根据所述源代码分支的代码和所述目标代码仓库,响应所述操作指令。
于一实施例中,所述操作请求中包括:所述目标代码仓库的库标识;所述根据所述操作请求,从所述预设代码库中定位所述目标代码仓库,包括:从所述预设代码库中,选取与所述库标识相同的所述目标代码仓库。
于一实施例中,所述目标代码仓库为多个,所述库标识为包括每个所述目标代码仓库的唯一标记的列表。
于一实施例中,所述操作指令包括:新建代码分支、切换代码分支、删除代码分支以及合并代码分支中的一个或多个。
于一实施例中,所述根据所述源代码分支的代码和所述目标代码仓库,响应所述操作指令,包括:将所述操作指令转换成代码命令,对所述源代码分支的代码和所述目标代码仓库执行所述代码命令。
于一实施例中,在所述接收终端发送的操作请求之前,还包括:接收所述终端向所述服务器发送的登录请求,并在所述登录请求通过身份验证后,授权所述终端登录所述服务器。
本申请实施例第二方面提供了一种操作指令响应装置,包括:接收模块,用于接收操作请求,所述操作请求中携带有源代码分支的源版本标识和操作指令;读取模块,用于根据所述源版本标识,从服务器预设代码库中读取所述源代码分支的代码;定位模块,用于根据所述操作请求,从所述预设代码库中定位所述目标代码仓库;响应模块,用于根据所述源代码分支的代码和所述目标代码仓库,响应所述操作指令。
于一实施例中,所述操作请求中包括:所述目标代码仓库的库标识;所述定位模块用于:从所述预设代码库中,选取与所述库标识相同的所述目标代码仓库。
于一实施例中,所述目标代码仓库为多个,所述库标识为包括每个所述目标代码仓库的唯一标记的列表。
于一实施例中,所述操作指令包括:新建代码分支、切换代码分支、删除代码分支以及合并代码分支中的一个或多个。
于一实施例中,所述响应模块用于:将所述操作指令转换成代码命令,对所述源代码分支的代码和所述目标代码仓库执行所述代码命令。
于一实施例中,还包括:
登录模块,用于在所述接收终端发送的操作请求之前,接收所述终端向所述服务器发送的登录请求,并在所述登录请求通过身份验证后,授权所述终端登录所述服务器。
本申请实施例第三方面提供了一种电子设备,包括:存储器,用以存储计算机程序;处理器,用以执行本申请实施例第一方面及其任一实施例的方法,以根据操作请求响应操作指令。
本申请实施例第四方面提供了一种非暂态电子设备可读存储介质,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行本申请实施例第一方面及其任一实施例的方法。
本申请提供的操作指令响应方法、装置、设备和存储介质,在接收到终端发送的操作请求时,根据操作请求中携带的所述源版本标识,从服务器的预设代码库中读取所述源代码分支的代码,然后根据所述操作请求,从所述预设代码库中定位所述目标代码仓库,最后根据所述源代码分支的代码和所述目标代码仓库,响应所述操作指令,实现了自动执行代码分支管理操作,提高代码分支管理的效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例的电子设备的结构示意图;
图2为本申请一实施例的操作指令响应系统的示意图;
图3为本申请一实施例的操作指令响应方法的流程示意图;
图4为本申请一实施例的操作指令响应装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图1所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图1中以一个处理器为例。处理器11和存储器12通过总线10连接,存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程,以根据操作请求响应操作指令。
于一实施例中,电子设备1可以是手机、笔记本电脑、台式计算机、或者多个计算机组成的服务器系统等设备。
以基于Gitlab代码管理平台的场景为例,Gitlab代码管理平台开放了一系列的接口,用于直接操作Gitlab远程平台的代码。例如以python作为执行语言的开源库python-gitlab。基于上述Gitlab代码管理平台,可以实现Git批量操作功能主要包括:批量新建分支、批量切换分支、批量删除分支、批量合并分支和批量打标签(tag)。其中合并分支功能,自动对合并结果做了相应处理。例如合并代码没有变动,则自动关闭此次发起合并的请求。
以新建分支为例,在开发中,一个APP(应用程序)版本的开发往往需要从稳定分支新建分支,而一次版本开发涉及的代码仓库可能有多个,比如涉及20个代码仓库,则需要建立20个新建分支,然后进行版本开发分支,这个版本的新需求代码都将会合并在这个新分支上。开发人员提交代码后,APP开发完成,最终APP成功上线时,再将这个新分支合并到稳定的master分支(主干分支),即将新增的功能需求合并到一个稳定分支上,以便后续的版本基于此稳定分支,新建下一个版本的新分支。每次版本开发,都需走新建分支--开发--合并回主干分支这个流程。
请参看图2,其为本申请一实施例的操作指令响应系统,包括:终端20和服务器30,其中:
终端20可以是研发人员的手机、电脑等设备,终端20中设置有脚本逻辑,该脚本逻辑可以转化为一个小型的应用程序,安装在研发人员使用的终端20上,通过UI(界面)化,让研发人员在使用时更加的简单。UI库,可以采用开源的wxPython。
服务器30可以由图1所示的电子设备1来实现,可以是基于Gitlab代码管理平台。服务器30接收终端20的操作请求,并基于操作请求响应终端20的操作指令。
请参看图3,其为本申请一实施例的操作指令响应方法,该方法可由图1所示的电子设备1作为服务器30来执行,并可应用于如图2所示的代码研发管理的场景中,以根据操作请求自动响应操作指令。该方法包括如下步骤:
步骤301:接收终端20向服务器30发送的登录请求,并在登录请求通过身份验证后,授权终端20登录服务器30。
在本步骤中,以基于Gitlab平台的服务器30为例,为了信息安全,终端20首选需要登录Gitlab平台,并获得服务器30的授权才可以访问服务器30进行操作。可以在代码管理操作之前,终端20先向服务器30申请一个永久性token(令牌),作为一个唯一识别身份,并将token嵌入终端20脚本代码中,之后终端20就可以随时登录服务器30。
步骤302:接收终端20发送的操作请求,操作请求中携带有源代码分支的源版本标识和操作指令。
在本步骤中,操作请求由终端20发送,在发送请求之前,可以由开发者在终端20启动脚本,终端20会弹出页面,要求开发者选择源代码分支的源版本标识,以及可以输入新建的分支名称,然后可以在弹出页面中选择需要操作的目标代码仓库的库标识。然后终端20将上述信息封装在操作请求中,发送给服务器30,服务器30在接收到操作请求时,可以先对操作请求进行解析,得到源代码分支的源版本标识和操作指令。
于一实施例中,如果整个APP研发工程的预设代码库有100个代码仓库,此次版本开发只涉及到20个目标代码仓库,那么开发者只需要勾选中这个20个目标代码仓库,对这20个目标代码仓库进行新建分支操作即可。
于一实施例中,操作指令包括:新建代码分支、切换代码分支、删除代码分支以及合并代码分支中的一个或多个。研发人员可以通过终端20选择需要的操作指令。
步骤303:根据源版本标识,从服务器30的预设代码库中读取源代码分支的代码。
在本步骤中,源版本标识是源代码分支的标识信息,源代码分支一般可以是稳定分支,预设代码库中存储有研发需要的多种代码仓库,可以基于源版本标识在预设代码库中定位到该源代码分支,然后从这个稳定分支复制一份代码进行后续操作。
步骤304:根据操作请求,从预设代码库中定位目标代码仓库。
在本步骤中,定位目标代码仓库,是为了定位到目标代码仓库内的代码,以便进一步对代码做Git操作。
于一实施例中,操作请求中包括:目标代码仓库的库标识id。比如Gitlab平台的仓库,每个代码仓库都可以设置一个仓库id,操作请求中携带有当前开发项目相关的目标代码仓库id,如此就可以从预设代码库中,选取与库标识相同的目标代码仓库进行操作了。
于一实施例中,目标代码仓库为多个,库标识为包括每个目标代码仓库的唯一标记的列表。比如多仓库模块批量处理情况下,则库标识为包括多个仓库id列表。
于一实施例中,每个代码仓库都有一个id,可以通过在脚本代码中预先内置好所有代码仓库的id,比如APP1--->1,APP2--->2,APP3--->3......。然后,根据操作请求中用户选择的目标代码仓库的库标识,即可定位到目标代码仓库了。比如可以基于python开源库[python-gitlab][https://python-gitlab.readthedocs.io/en/master/],此库中提供了根据仓库id,定位到具体仓库的功能。
步骤305:根据源代码分支的代码和目标代码仓库,响应操作指令。
在本步骤中,在定位到目标代码仓库之后,就可以发出指令,通知目标代码仓库响应操作指令。
于一实施例中,步骤305具体可以包括:将操作指令映射成代码命令,对源代码分支的代码和目标代码仓库执行代码命令。基于Gitlab平台(服务器30)开放的一系列接口,可以直接在代码中执行这些命令,而不需要通过人为操作触发。比如可以将操作请求中开发者选择的操作指令为新建分支,则映射的代码命令为git branch...相关参数。
上述操作指令响应方法,通过服务器30通过接受终端20操作请求,并根据操作请求中携带的标识信息,自动定位开发者选择的目标代码仓库,然后自动响应操作指令,实现了自动进行代码管理操作,解决了现有技术中的人工操作的过于耗时、繁琐、容易引发问题的缺陷,提高了代码管理的效率。
请参看图4,其为本申请一实施例的操作指令响应装置400,该装置可应用于图2所示的服务器30,并可应用于如图2所示的代码研发管理的场景中,以根据操作请求自动响应操作指令。该装置包括:接收模块401、读取模块402、定位模块403和响应模块404,各个模块的原理关系如下:
接收模块401,用于接收操作请求,操作请求中携带有源代码分支的源版本标识和操作指令。
读取模块402,用于根据源版本标识,从服务器预设代码库中读取源代码分支的代码。
定位模块403,用于根据操作请求,从预设代码库中定位目标代码仓库。
响应模块404,用于根据源代码分支的代码和目标代码仓库,响应操作指令。
于一实施例中,操作请求中包括:目标代码仓库的库标识。定位模块403用于:从预设代码库中,选取与库标识相同的目标代码仓库。
于一实施例中,目标代码仓库为多个,库标识为包括每个目标代码仓库的唯一标记的列表。
于一实施例中,操作指令包括:新建代码分支、切换代码分支、删除代码分支以及合并代码分支中的一个或多个。
于一实施例中,响应模块404用于:将操作指令转换成代码命令,对源代码分支的代码和目标代码仓库执行代码命令。
于一实施例中,还包括:
登录模块405,用于在接收终端发送的操作请求之前,接收终端向服务器发送的登录请求,并在登录请求通过身份验证后,授权终端登录服务器。
上述操作指令响应装置400的详细描述,请参见上述实施例中相关方法步骤的描述。
本发明实施例还提供了一种非暂态电子设备可读存储介质,包括:程序,当其在电子设备上运行时,使得电子设备可执行上述实施例中方法的全部或部分流程。其中,存储介质可为磁盘、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccess Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等。存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (10)

1.一种操作指令响应方法,其特征在于,包括:
接收终端发送的操作请求,所述操作请求中携带有源代码分支的源版本标识和操作指令;
根据所述源版本标识,从服务器的预设代码库中读取所述源代码分支的代码;
根据所述操作请求,从所述预设代码库中定位所述目标代码仓库;
根据所述源代码分支的代码和所述目标代码仓库,响应所述操作指令。
2.根据权利要求1所述的方法,其特征在于,所述操作请求中包括:所述目标代码仓库的库标识;所述根据所述操作请求,从所述预设代码库中定位所述目标代码仓库,包括:
从所述预设代码库中,选取与所述库标识相同的所述目标代码仓库。
3.根据权利要求2所述的方法,其特征在于,所述目标代码仓库为多个,所述库标识为包括每个所述目标代码仓库的唯一标记的列表。
4.根据权利要求1所述的方法,其特征在于,所述操作指令包括:新建代码分支、切换代码分支、删除代码分支以及合并代码分支中的一个或多个。
5.根据权利要求1所述的方法,其特征在于,所述根据所述源代码分支的代码和所述目标代码仓库,响应所述操作指令,包括:
将所述操作指令转换成代码命令,对所述源代码分支的代码和所述目标代码仓库执行所述代码命令。
6.根据权利要求1所述的方法,其特征在于,在所述接收终端发送的操作请求之前,还包括:
接收所述终端向所述服务器发送的登录请求,并在所述登录请求通过身份验证后,授权所述终端登录所述服务器。
7.一种操作指令响应装置,其特征在于,包括:
接收模块,用于接收操作请求,所述操作请求中携带有源代码分支的源版本标识和操作指令;
读取模块,用于根据所述源版本标识,从服务器预设代码库中读取所述源代码分支的代码;
定位模块,用于根据所述操作请求,从所述预设代码库中定位所述目标代码仓库;
响应模块,用于根据所述源代码分支的代码和所述目标代码仓库,响应所述操作指令。
8.根据权利要求7所述的装置,其特征在于,所述操作请求中包括:所述目标代码仓库的库标识;所述定位模块用于:
从所述预设代码库中,选取与所述库标识相同的所述目标代码仓库。
9.一种电子设备,其特征在于,包括:
存储器,用以存储计算机程序;
处理器,用以执行如权利要求1至6中任一项所述的方法,以根据操作请求响应操作指令。
10.一种非暂态电子设备可读存储介质,其特征在于,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行权利要求1至6中任一项所述的方法。
CN202011590746.4A 2020-12-29 2020-12-29 操作指令响应方法、装置、设备和存储介质 Pending CN112631652A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011590746.4A CN112631652A (zh) 2020-12-29 2020-12-29 操作指令响应方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011590746.4A CN112631652A (zh) 2020-12-29 2020-12-29 操作指令响应方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
CN112631652A true CN112631652A (zh) 2021-04-09

Family

ID=75285923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011590746.4A Pending CN112631652A (zh) 2020-12-29 2020-12-29 操作指令响应方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN112631652A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976801A (zh) * 2019-04-24 2019-07-05 网宿科技股份有限公司 一种代码开发方法、系统及计算机可读存储介质
CN110231945A (zh) * 2019-05-20 2019-09-13 深圳壹账通智能科技有限公司 代码下载的方法、装置、电子设备及计算机存储介质
WO2019200701A1 (zh) * 2018-04-17 2019-10-24 平安科技(深圳)有限公司 一种配置管理方法、装置、终端设备及存储介质
CN110569035A (zh) * 2019-08-08 2019-12-13 数字广东网络建设有限公司 软件开发项目的代码编译方法、装置、设备和存储介质
CN110597518A (zh) * 2019-09-17 2019-12-20 上海钧正网络科技有限公司 项目构建方法、装置、计算机设备和存储介质
CN111897782A (zh) * 2020-08-19 2020-11-06 百度时代网络技术(北京)有限公司 文件控制方法、装置、设备及存储介质
CN112114865A (zh) * 2020-08-27 2020-12-22 微民保险代理有限公司 版本数据的处理方法和装置、存储介质和电子装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019200701A1 (zh) * 2018-04-17 2019-10-24 平安科技(深圳)有限公司 一种配置管理方法、装置、终端设备及存储介质
CN109976801A (zh) * 2019-04-24 2019-07-05 网宿科技股份有限公司 一种代码开发方法、系统及计算机可读存储介质
CN110231945A (zh) * 2019-05-20 2019-09-13 深圳壹账通智能科技有限公司 代码下载的方法、装置、电子设备及计算机存储介质
CN110569035A (zh) * 2019-08-08 2019-12-13 数字广东网络建设有限公司 软件开发项目的代码编译方法、装置、设备和存储介质
CN110597518A (zh) * 2019-09-17 2019-12-20 上海钧正网络科技有限公司 项目构建方法、装置、计算机设备和存储介质
CN111897782A (zh) * 2020-08-19 2020-11-06 百度时代网络技术(北京)有限公司 文件控制方法、装置、设备及存储介质
CN112114865A (zh) * 2020-08-27 2020-12-22 微民保险代理有限公司 版本数据的处理方法和装置、存储介质和电子装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
(美)KARL FOGEL: "《CVS开源软件开发技术》", 30 June 2001, 机械工业出版社, pages: 164 *
杨永毅;赵芳;赵思亮;: "基于SVN技术实现气象项目源代码管理", 气象水文海洋仪器, no. 04 *

Similar Documents

Publication Publication Date Title
US10216510B2 (en) Silent upgrade of software with dependencies
US10289397B2 (en) Silent installation of software with dependencies
CN110096306B (zh) 应用版本切换方法及装置、电子设备、存储介质
CN110705235B (zh) 业务办理的信息录入方法、装置、存储介质及电子设备
CN111414391A (zh) 一种访问多数据源的方法及系统
CN111367890A (zh) 一种数据迁移的方法、装置、计算机设备及可读存储介质
CN109032612B (zh) 混合型应用的接口调用方法、装置及计算机可读存储介质
US9703848B2 (en) Caching linked queries for optimized compliance management
US20190073198A1 (en) Multi-flavored software execution from a singular code base
CN115858049B (zh) Rpa流程组件化编排方法、装置、设备和介质
US10956413B2 (en) Action set translation
CN115080114B (zh) 应用程序的移植处理方法、装置和介质
CN112631652A (zh) 操作指令响应方法、装置、设备和存储介质
CN116594874A (zh) 运行环境可用性测试方法、装置、计算机设备和存储介质
CN114443294B (zh) 大数据服务组件部署方法、系统、终端及存储介质
CN113791809B (zh) 应用异常处理方法、装置以及计算机可读存储介质
EP3425510B1 (en) Automated testing method for application program user interface, electronic device, system, and storage medium
CN113761402A (zh) 一种链接调试方法、装置、设备和存储介质
CN110221952B (zh) 业务数据的处理方法及装置、业务数据处理系统
CN111679862A (zh) 云主机关机方法、装置、电子设备及介质
CN114237754B (zh) 一种数据加载方法、装置、电子设备以及存储介质
CN112558946B (zh) 一种生成代码的方法、装置、设备和计算机可读存储介质
CN113778434A (zh) 多语言文案管理方法、装置、电子设备以及存储介质
CN114896578A (zh) 一种兼容多系统的指纹登录设备控制方法、装置及介质
CN117591190A (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