CN110442371B - 一种发布代码的方法、装置、介质及计算机设备 - Google Patents

一种发布代码的方法、装置、介质及计算机设备 Download PDF

Info

Publication number
CN110442371B
CN110442371B CN201910716886.2A CN201910716886A CN110442371B CN 110442371 B CN110442371 B CN 110442371B CN 201910716886 A CN201910716886 A CN 201910716886A CN 110442371 B CN110442371 B CN 110442371B
Authority
CN
China
Prior art keywords
file
warehouse
local
code
remote
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
CN201910716886.2A
Other languages
English (en)
Other versions
CN110442371A (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.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology 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 Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201910716886.2A priority Critical patent/CN110442371B/zh
Publication of CN110442371A publication Critical patent/CN110442371A/zh
Application granted granted Critical
Publication of CN110442371B publication Critical patent/CN110442371B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种发布代码的方法、装置、介质及计算机设备,方法包括:利用预先编辑的脚本程序获取远程仓库中各基本文件的文件内容;基于远程仓库中各基本文件的文件名和文件内容在本地仓库中创建对应的模板文件;根据预设的需求,在本地仓库中对模板文件进行修改,形成基准文件;利用基准文件对本地仓库中目标组件的代码进行修改;发布修改后的目标组件的代码;如此,通过预先编辑的脚本程序自动实现获取远程仓库的文件内容、创建模板文件、对模板文件进行修改、根据修改后的模板文件对目标组件代码进行修改及发布修改后的组件代码,这样自动发布代码的方式相比现有技术中通过人工实现的方式,提高了操作效率,进而提高发布代码的效率。

Description

一种发布代码的方法、装置、介质及计算机设备
技术领域
本发明属于软件开发技术领域,尤其涉及一种发布代码的方法、装置、介质及计算机设备。
背景技术
在移动开发中,很多时候需要去发布组件代码,常规的发布方法每一步都需要人工实现,由于实现步骤繁琐,费时费力,导致发布效率低下。并且由于人工操作时,难免会有疏漏,那么就需要从头开始重新检查,进一步影响发布效率。
发明内容
针对现有技术存在的问题,本发明实施例提供了一种发布代码的方法、装置、介质及计算机设备,用于解决现有技术中由人工实现代码发布时,由于实现步骤繁琐,导致发布效率低的技术问题。
本发明实施例提供一种发布代码的方法,所述方法包括:
利用预先编辑的脚本程序获取远程仓库中各基本文件的文件内容;
基于所述远程仓库中各基本文件的文件名和文件内容在本地仓库中创建对应的模板文件;
根据预设的需求,在所述本地仓库中对目标模板文件进行修改,形成基准文件;
利用所述基准文件对所述本地仓库中目标组件的代码进行修改;
发布修改后的所述目标组件的代码。
上述方案中,所述利用预先编辑的脚本程序获取远程仓库中各基本文件的文件内容,包括:
获取第一目标文件的名称,所述第一目标文件为所述远程仓库中的任一基本文件;
判断文件内容获取函数中传入的所述第一目标文件的名称是否为空,若不为空,则基于所述第一目标文件的名称从所述远程仓库中读取对应的文件内容。
上述方案中,所述基于所述远程仓库中各基本文件的文件名和文件内容在本地仓库中创建对应的模板文件之前,包括:
利用仓库创建函数在本地建立本地仓库,所述本地仓库的名称与所述远程仓库的名称一致。
上述方案中,所述基于所述远程仓库中各基本文件的文件名和文件内容在本地仓库中创建对应的模板文件,包括:
获取第二目标文件的名称,所述第二目标文件为读取到的任一基本文件;
利用文件创建函数判断所述第二目标文件的名称是否为空,若不为空,则利用文件新建函数创建对应的模板文件,所述模板文件的名称与所述第二目标文件的名称一致;
利用写入函数将所述第二目标文件的名称对应的文件内容写入所述对应的模板文件中。
上述方案中,所述利用所述基准文件对所述本地仓库中目标组件的代码进行修改之后,包括:
将需要发布所述目标组件的本地仓库、所述目标组件的工程名称及所述目标组件的版本号存储在预设的数组中。
上述方案中,所述发布修改后的所述目标组件的代码,包括:
获取所述本地仓库的主分支,从所述本地仓库中拉取所述目标组件的当前代码,所述当前代码为最近一次修改后的代码;
更新索引文件的版本号,所述索引文件为用于记录所述本地仓库的地址及所述本地仓库中文件结构的文件;
将所述当前代码提交至所述本地仓库中的暂存区;
利用提交函数将所述暂存区的所述当前代码提交至本地缓存的版本库中;
利用远程推送函数将所述本地缓存的版本库中的当前代码推送至所述远程仓库。
上述方案中,所述发布修改后的所述目标组件的代码后,包括:
对所述索引文件进行验证,若验证通过,则判断所述远程仓库是否存在,若所述远程仓库存在,则利用文件推送命令将所述索引文件推送至所述远程仓库中。
本发明实施例还提供一种发布代码的装置,所述装置包括:
获取单元,用于利用预先编辑的脚本程序获取远程仓库中各基本文件的文件内容;
创建单元,用于基于所述远程仓库中各基本文件的文件名和文件内容在本地仓库中创建对应的模板文件;
第一修改单元,用于根据预设的需求,在所述本地仓库中对目标模板文件进行修改,形成基准文件;
第二修改单元,用于利用所述基准文件对所述本地仓库中目标组件的代码进行修改;
发布单元,用于发布修改后的所述目标组件的代码。
上述方案中,该程序被处理器执行时实现上述任一项所述的方法。
上述方案中,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述任一项所述的方法。
本发明实施例提供了一种发布代码的方法、装置、介质及计算机设备,方法包括:利用预先编辑的脚本程序获取远程仓库中各基本文件的文件内容;基于所述远程仓库中各基本文件的文件名和文件内容在本地仓库中创建对应的模板文件;根据预设的需求,在所述本地仓库中对所述模板文件进行修改,形成基准文件;利用所述基准文件对所述本地仓库中目标组件的代码进行修改;发布修改后的所述目标组件的代码;如此,通过预先编辑的脚本程序自动实现获取远程仓库的文件内容、创建模板文件、对模板文件进行修改、根据修改后的模板文件对目标组件代码进行修改及发布修改后的组件代码,这样自动发布代码的方式相比现有技术中通过人工来实现上述流程,可以明显提高操作效率,且可以避免人工操作出现的疏漏,进一步提高发布代码的效率。
附图说明
图1为本发明实施例提供的发布代码的方法流程示意图;
图2为本发明实施例提供的发布代码的装置结构示意图;
图3为本发明实施例提供的发布代码的计算机设备结构示意图;
图4为本发明实施例提供的发布代码的计算机介质结构示意图。
具体实施方式
为了解决现有技术中由人工实现代码发布时,由于实现步骤繁琐,导致发布效率低的技术问题,本发明提供了一种发布代码的方法、装置、介质及计算机设备,方法包括:利用预先编辑的脚本程序获取远程仓库中各基本文件的文件内容;基于所述远程仓库中各基本文件的文件名和文件内容在本地仓库中创建对应的模板文件;根据预设的需求,在所述本地仓库中对所述模板文件进行修改,形成基准文件;利用所述基准文件对所述本地仓库中目标组件的代码进行修改;发布修改后的所述目标组件的代码。
下面通过附图及具体实施例对本发明的技术方案做进一步的详细说明。
实施例一
本实施例提供一种发布代码的方法,如图1所示,方法包括:
S110,利用预先编辑的脚本程序获取远程仓库中各基本文件的文件内容;
本实施例中,预先编辑脚本程序,通过所述脚本程序利用文件内容获取函数getFileContent来获取远程仓库中各基本文件的文件内容;其中,getFileContent函数有一个参数,为文件名fileName。这里,基本文件可以理解为远程仓库中的文件,也就是说,远程仓库中的文件都可以称之为基本文件。
那么,作为一种可选的实施例,利用预先编辑的脚本程序获取远程仓库中各基本文件的文件内容,包括:
首先获取第一目标文件的名称,第一目标文件为远程仓库中的任一基本文件;
判断文件内容获取函数getFileContent中传入的所述第一目标文件的名称fileName是否为空,若不为空,则利用读取函数read函数基于第一目标文件的名称从远程仓库中读取对应的文件内容。
这里,若后续还需要对第一目标文件的文件内容添加一些自定义功能,若fileName不为空,那么可以创建一个新的文件,在此称之为当前文件targetFile;利用read函数基于第一目标文件的名称从远程仓库中读取对应的文件内容至当前文件targetFile中。然后,利用read函数从当前文件targetFile再读取对应的文件内容,最后将读取到的文件内容赋值至预先定义的字符串content中。
需要说明的是,每个基本文件对应一个字符串content,不同的字符串通过各基本文件的文件名来标识,以能区分。
其中,在创建当前文件时,也可能存在创建不成功的情况,那么在创建当前文件后,还需判断当前文件targetFile是否存在。
这样就通过脚本程序自动读取到了远程仓库中各基本文件的文件内容了。
S111,基于所述远程仓库中各基本文件的文件名和文件内容在本地仓库中创建对应的模板文件;
作为一种可选的实施例,基于所述远程仓库中各基本文件的文件名和文件内容在本地仓库中创建对应的模板文件之前,包括:
利用仓库创建函数在本地建立本地仓库,本地仓库的名称与远程仓库的名称一致。
获取到远程仓库中各基本文件的文件内容后,基于各基本文件的文件名和文件内容在本地仓库中创建对应的模板文件,具体实现如下:
获取第二目标文件的名称,第二目标文件为上述读取到的任一基本文件,也就是读取到任一字符串content;
利用文件创建函数createFile判断第二目标文件的名称是否为空,若为空,直接返回;
若不为空,则利用文件新建函数new函数创建对应的模板文件,模板文件的名称与所述第二目标文件的名称一致;
这里,因创建模板文件后,也有可能存在创建失败的情况,因此创建后,还需判断创建的模板文件是否存在,若存在,则利用写入函数syswrite函数将第二目标文件的名称对应的文件内容(也可以理解为将第二目标文件的名称对应的content字符串)写入对应的模板文件中。这样,就把远程仓库中的基本文件复制到了本地仓库中,相当于把远程仓库克隆到本地仓库了。
这种利用脚本程序自动建立本地仓库,相比现有技术中手动复制粘贴文件内容去建立模板文件,明显是提高了自动化,进一步提高了本地仓库的建立效率。
S112,根据预设的需求,在所述本地仓库中对目标模板文件进行修改,形成基准文件;
这里,如果想增加一些自定义功能,那么会根据预设的需求对目标模板文件进行修改,使得模板文件称为基准文件。
具体地,由于每个模板文件在本地仓库中都有特定的地址,因此在修改目标模板之前,需要获取目标模板文件的文件地址,利用文件内容获取函数get_file_content函数,基于目标模板文件的文件地址获取目标模板文件的文件内容;获取到文件内容后,判断目标模板文件的名称是否存在,若存在,则根据预设的需求对文件内容进行修改,比如在文件内容中增加一些自定义代码,实现某种自定义功能。
并且,在本地仓库中还需创建一些版本发布的文件,比如索引文件spec文件,所述索引文件为用于记录所述本地仓库的地址及所述本地仓库中文件结构的文件。
相比现有技术中人工实现的修改过程,本步骤中通过脚本程序实现模板文件的修改及版本发布文件的创建,可以缩短处理时间。
S113,利用所述基准文件对所述本地仓库中目标组件的代码进行修改;
获取到基准文件后,利用所述基准文件对所述本地仓库中目标组件的代码进行修改,修改后的代码会存储在本地仓库的主分支中,主分支是用于存储最近一次更新的代码。
这里,在对目标组件的代码进行修改时,具体是将基准文件的代码添加至目标组件代码的预设位置中,添加成功后即视为修改成功。
然后将需要目标组件的本地仓库、目标组件的工程名称及目标组件的版本号存储在预设的数组中;该数组为option数组。
S114,发布修改后的所述目标组件的代码。
在发布修改后的所述目标组件的代码之前,获取option数组,利用数组取值方法对数组进行解析,将数组中的各元素取出。将目标组件的本地仓库存储在变量targetrepo中,将目标组件的工程名称存储在变量targetprogeect中,将目标组件的版本号存储在变量targetversion中。
作为一种可选的实施例,发布修改后的所述目标组件的代码,实现如下:
获取本地仓库的主分支,从所述本地仓库中拉取所述目标组件的当前代码,所述当前代码为最近一次修改后的代码。
这里,主分支中存储的是最近一次修改后的代码,为最新的代码,因此,利用命令行git_pull从主分支中拉取当前代码。其中,在获取本地仓库的主分支时,ensure_git_branch函数是根据主分支标识来获取主分支的,以确保获取到的分支是主分支。这种通过命令行拉取代码的操作,相比现有技术中人工切换分支、再拉取代码的操作明显是简化了操作流程。
更新索引文件spec文件的版本号及地址,所述索引文件为用于记录所述本地仓库的地址及所述本地仓库中文件结构的文件;其中,
比如,代码修改之前,spec文件的版本号为1.0,那么修改之后,版本号为1.1,那么就需要将spec文件的版本号更新为1.1。相比常规利用人工修改spec文件时,打开spec文件进行编辑修改,再上传至服务器,明显提高了自动化过程。
然后利用git add命令将所述当前代码提交至所述本地仓库中的暂存区;
基于版本库的路径,利用提交函数git_commit函数将所述暂存区的当前代码及当前代码的备注信息一并提交至本地缓存的版本库中;其中,git_commit包含两个参数:第一个参数是path,代表版本库的路径,第二个参数为当前代码的备注信息。
最后,利用远程推送函数push_to_git_remote将本地缓存的版本库中的当前代码推送至远程仓库。
将当前代码推送至远程仓库中后,方法还包括:
判断targetversion变量中目标组件的版本号是否存在,如果存在,利用移除函数remove_git_tag将存在的版本号tag移除;移除函数remove_git_tag的参数为目标组件的当前版本号。
因目标组件的当前代码已经是更新过的代码,因此还需利用版本号添加函数add_git_tag在变量targetversion添加一个新的版本号,并利用版本号推送函数push_git_tag将添加的版本号推动至远程仓库中。
另外,作为一种可选的实施例,并利用版本号推送函数push_git_tag将添加的版本号推动至远程仓库中后,包括:
利用验证命令pod_lib_lint对所述索引文件进行验证,若验证通过,则判断所述远程仓库是否存在,若所述远程仓库存在,则利用文件推送函数用pod_push将所述索引文件推送至所述远程仓库中。这里,pod_push函数包括三个参数:第一个参数是spec文件在远程仓库中的地址,第二个参数是远程仓库本身的地址,第三个参数为是否允许警告。
那么,利用文件推送函数用pod_push将索引文件推送至所述远程仓库中可以包括:
基于远程仓库本身的地址查找到远程仓库;
基于索引文件(spec文件)在远程仓库中的地址,将索引文件推送至远程仓库中;
若在推送过程中或者推送结束后,出现错误,且第三个参数设定为允许警告,则会向用户发送推送有错误的警告信息,并将推送过程产生的错误生成日志信息,存储在预定位置中,以便操作人员查看。
这里,在利用人工对spec进行验证至少需要10~15min,而利用本案中的脚本函数进行验证时,只需要2min左右,进一步提高了验证效率。
至此,就利用脚本程序将目标组件的代码发布成功了,相比现有技术中每一步均需要人工操作的方式,本案通过脚本程序实现自动化的发布,完毕避免了一些费时费力的点击、复制、粘贴、检错等过程,提高了代码的发布效率。
基于同一发明构思,本文还提供一种发布代码的装置,详见实施例二。
实施例二
本实施例提供一种发布代码的装置,如图2所示,装置包括:获取单元21、创建单元22、第一修改单元23、第二修改单元24及发布单元25;其中,
获取单元21通过所述脚本程序利用文件内容获取函数getFileContent来获取远程仓库中各基本文件的文件内容;其中,getFileContent函数有一个参数,为文件名fileName。具体实现如下:
首先获取第一目标文件的名称,第一目标文件为远程仓库中的任一基本文件;
判断文件内容获取函数getFileContent中传入的所述第一目标文件的名称fileName是否为空,若不为空,则利用读取函数read函数基于第一目标文件的名称从远程仓库中读取对应的文件内容。
这里,若后续还需要对第一目标文件的文件内容添加一些自定义功能,若fileName不为空,那么可以创建一个新的文件,在此称之为当前文件targetFile;利用read函数基于第一目标文件的名称从远程仓库中读取对应的文件内容至当前文件targetFile中。然后,利用read函数从当前文件targetFile再读取对应的文件内容,最后将读取到的文件内容赋值至预先定义的字符串content中。
需要说明的是,每个基本文件对应一个字符串content,不同的字符串通过各基本文件的文件名来标识,以能区分。
其中,在创建当前文件时,也可能存在创建不成功的情况,那么在创建当前文件后,还需判断当前文件targetFile是否存在。
这样获取单元21就通过脚本程序自动读取到了远程仓库中各基本文件的文件内容了。
作为一种可选的实施例,基于所述远程仓库中各基本文件的文件名和文件内容在本地仓库中创建对应的模板文件之前,创建单元22用于:
利用仓库创建函数在本地建立本地仓库,本地仓库的名称与远程仓库的名称一致。
获取到远程仓库中各基本文件的文件内容后,创建单元22还用于基于所述远程仓库中各基本文件的文件名和文件内容在本地仓库中创建对应的模板文件;实现如下:
获取第二目标文件的名称,第二目标文件为上述读取到的任一基本文件,也就是读取到任一字符串content;
利用文件创建函数createFile判断第二目标文件的名称是否为空,若为空,直接返回;
若不为空,则利用文件新建函数new函数创建对应的模板文件,模板文件的名称与所述第二目标文件的名称一致;
这里,因创建模板文件后,也有可能存在创建失败的情况,因此创建后,还需判断创建的模板文件是否存在,若存在,则利用写入函数syswrite函数将第二目标文件的名称对应的文件内容(也可以理解为将第二目标文件的名称对应的content字符串)写入对应的模板文件中。这样,就把远程仓库中的基本文件复制到了本地仓库中,相当于把远程仓库克隆到本地仓库了。
这种利用脚本程序自动建立本地仓库,相比现有技术中手动复制粘贴文件内容去建立模板文件,明显是提高了自动化,进一步提高了本地仓库的建立效率。
这里,如果想增加一些自定义功能,那么第一修改单元23会根据预设的需求对目标模板文件进行修改,使得模板文件称为基准文件。
具体地,由于每个模板文件在本地仓库中都有特定的地址,因此第一修改单元23在修改目标模板之前,需要获取目标模板文件的文件地址,利用文件内容获取函数get_file_content函数,基于目标模板文件的文件地址获取目标模板文件的文件内容;获取到文件内容后,判断目标模板文件的名称是否存在,若存在,则根据预设的需求对文件内容进行修改,比如在文件内容中增加一些自定义代码,实现某种自定义功能。
并且,在本地仓库中还需创建一些版本发布的文件,比如索引文件spec文件,所述索引文件为用于记录所述本地仓库的地址及所述本地仓库中文件结构的文件。
相比现有技术中人工实现的修改过程,本步骤中通过脚本程序实现模板文件的修改及版本发布文件的创建,可以缩短处理时间。
获取到基准文件后,第二修改单元24利用所述基准文件对所述本地仓库中目标组件的代码进行修改;修改后的代码会存储在本地仓库的主分支中,主分支是用于存储最近一次更新的代码。
这里,第二修改单元24在对目标组件的代码进行修改时,具体是将基准文件的代码添加至目标组件代码的预设位置中,添加成功后即视为修改成功。
然后将将需要目标组件的本地仓库、目标组件的工程名称及目标组件的版本号存储在预设的数组中;该数组为option数组。
在发布修改后的所述目标组件的代码之前,发布单元25用于:获取option数组,利用数组取值方法对数组进行解析,将数组中的各元素取出。将目标组件的本地仓库存储在变量targetrepo中,将目标组件的工程名称存储在变量targetprogeect中,将目标组件的版本号存储在变量targetversion中。
作为一种可选的实施例,发布单元25发布修改后的所述目标组件的代码,实现如下:
获取本地仓库的主分支,从所述本地仓库中拉取所述目标组件的当前代码,所述当前代码为最近一次修改后的代码。
这里,主分支中存储的是最近一次修改后的代码,为最新的代码,因此,利用命令行git_pull从主分支中拉取当前代码。其中,在获取本地仓库的主分支时,ensure_git_branch函数是根据主分支标识来获取主分支的,以确保获取到的分支是主分支。这种通过命令行拉取代码的操作,相比现有技术中人工切换分支、再拉取代码的操作明显是简化了操作流程。
更新索引文件spec文件的版本号及地址,所述索引文件为用于记录所述本地仓库的地址及所述本地仓库中文件结构的文件;其中,
比如,代码修改之前,spec文件的版本号为1.0,那么修改之后,版本号为1.1,那么就需要将spec文件的版本号更新为1.1。相比常规利用人工修改spec文件时,打开spec文件进行编辑修改,再上传至服务器,明显提高了自动化过程。
然后利用git add命令将所述当前代码提交至所述本地仓库中的暂存区;
基于版本库的路径,利用提交函数git_commit函数将所述暂存区的当前代码及当前代码的备注信息一并提交至本地缓存的版本库中;其中,git_commit包含两个参数:第一个参数是path,代表版本库的路径,第二个参数为当前代码的备注信息。
最后,利用远程推送函数push_to_git_remote将本地缓存的版本库中的当前代码推送至远程仓库。
将当前代码推送至远程仓库中后,发布单元25还用于:
判断targetversion变量中目标组件的版本号是否存在,如果存在,利用移除函数remove_git_tag将存在的版本号tag移除;移除函数remove_git_tag的参数为目标组件的当前版本号。
因目标组件的当前代码已经是更新过的代码,因此还需利用版本号添加函数add_git_tag在变量targetversion添加一个新的版本号,并利用版本号推送函数push_git_tag将添加的版本号推动至远程仓库中。
另外,作为一种可选的实施例,并利用版本号推送函数push_git_tag将添加的版本号推动至远程仓库中后,发布单元25还用于:
利用验证命令pod_lib_lint对所述索引文件进行验证,若验证通过,则判断所述远程仓库是否存在,若所述远程仓库存在,则利用文件推送函数用pod_push将所述索引文件推送至所述远程仓库中。这里,pod_push函数包括三个参数:第一个参数是spec文件在远程仓库中的地址,第二个参数是远程仓库本身的地址,第三个参数为是否允许警告。
那么,利用文件推送函数用pod_push将索引文件推送至所述远程仓库中可以包括:
基于远程仓库本身的地址查找到远程仓库;
基于索引文件(spec文件)在远程仓库中的地址,将索引文件推送至远程仓库中;
若在推送过程中或者推送结束后,出现错误,且第三个参数设定为允许警告,则会向用户发送推送有错误的警告信息,并将推送过程产生的错误生成日志信息,存储在预定位置中,以便操作人员查看。
这里,在利用人工对spec进行验证至少需要10~15min,而利用本案中的脚本函数进行验证时,只需要2min左右,进一步提高了验证效率。
实施例三
本实施例提供一种计算机设备,如图3所示,包括存储器310、处理器320及存储在存储器310上并可在处理器320上运行的计算机程序311,处理器320执行计算机程序311时实现以下步骤:
利用预先编辑的脚本程序获取远程仓库中各基本文件的文件内容;
基于所述远程仓库中各基本文件的文件名和文件内容在本地仓库中创建对应的模板文件;
根据预设的需求,在所述本地仓库中对目标模板文件进行修改,形成基准文件;
利用所述基准文件对所述本地仓库中目标组件的代码进行修改;
发布修改后的所述目标组件的代码。
在具体实施过程中,处理器320执行计算机程序311时,可以实现实施例一中任一实施方式。
由于本实施例所介绍的计算机设备为实施本申请实施例一中一种打开直播间页面的方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的计算机设备的具体实施方式以及其各种变化形式,所以在此对于该服务器如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。
实施例四
本实施例提供一种计算机可读存储介质400,如图4所示,其上存储有计算机程序411,该计算机程序411被处理器执行时实现以下步骤:
利用预先编辑的脚本程序获取远程仓库中各基本文件的文件内容;
基于所述远程仓库中各基本文件的文件名和文件内容在本地仓库中创建对应的模板文件;
根据预设的需求,在所述本地仓库中对目标模板文件进行修改,形成基准文件;
利用所述基准文件对所述本地仓库中目标组件的代码进行修改;
发布修改后的所述目标组件的代码。
在具体实施过程中,该计算机程序411被处理器执行时,可以实现实施例一中任一实施方式。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种发布代码的方法,其特征在于,所述方法包括:
利用预先编辑的脚本程序获取远程仓库中各基本文件的文件内容;
基于所述远程仓库中各基本文件的文件名和文件内容在本地仓库中创建对应的模板文件;
根据预设的需求,在所述本地仓库中对目标模板文件进行修改,形成基准文件;
利用所述基准文件对所述本地仓库中目标组件的代码进行修改;
发布修改后的所述目标组件的代码;其中,
所述基于所述远程仓库中各基本文件的文件名和文件内容在本地仓库中创建对应的模板文件之前,包括:
利用仓库创建函数在本地建立本地仓库,所述本地仓库的名称与所述远程仓库的名称一致。
2.如权利要求1所述的方法,其特征在于,所述利用预先编辑的脚本程序获取远程仓库中各基本文件的文件内容,包括:
获取第一目标文件的名称,所述第一目标文件为所述远程仓库中的任一基本文件;
判断文件内容获取函数中传入的所述第一目标文件的名称是否为空,若不为空,则基于所述第一目标文件的名称从所述远程仓库中读取对应的文件内容。
3.如权利要求1所述的方法,其特征在于,所述基于所述远程仓库中各基本文件的文件名和文件内容在本地仓库中创建对应的模板文件,包括:
获取第二目标文件的名称,所述第二目标文件为读取到的任一基本文件;
利用文件创建函数判断所述第二目标文件的名称是否为空,若不为空,则利用文件新建函数创建对应的模板文件,所述模板文件的名称与所述第二目标文件的名称一致;
利用写入函数将所述第二目标文件的名称对应的文件内容写入所述对应的模板文件中。
4.如权利要求1所述的方法,其特征在于,所述利用所述基准文件对所述本地仓库中目标组件的代码进行修改之后,包括:
将需要发布所述目标组件的本地仓库、所述目标组件的工程名称及所述目标组件的版本号存储在预设的数组中。
5.如权利要求1所述的方法,其特征在于,所述发布修改后的所述目标组件的代码,包括:
获取所述本地仓库的主分支,从所述本地仓库中拉取所述目标组件的当前代码,所述当前代码为最近一次修改后的代码;
更新索引文件的版本号,所述索引文件为用于记录所述本地仓库的地址及所述本地仓库中文件结构的文件;
将所述当前代码提交至所述本地仓库中的暂存区;
利用提交函数将所述暂存区的所述当前代码提交至本地缓存的版本库中;
利用远程推送函数将所述本地缓存的版本库中的当前代码推送至所述远程仓库。
6.如权利要求5所述的方法,其特征在于,所述发布修改后的所述目标组件的代码后,包括:
对所述索引文件进行验证,若验证通过,则判断所述远程仓库是否存在,若所述远程仓库存在,则利用文件推送命令将所述索引文件推送至所述远程仓库中。
7.一种发布代码的装置,其特征在于,所述装置包括:
获取单元,用于利用预先编辑的脚本程序获取远程仓库中各基本文件的文件内容;
创建单元,用于基于所述远程仓库中各基本文件的文件名和文件内容在本地仓库中创建对应的模板文件;
第一修改单元,用于根据预设的需求,在所述本地仓库中对目标模板文件进行修改,形成基准文件;
第二修改单元,用于利用所述基准文件对所述本地仓库中目标组件的代码进行修改;
发布单元,用于发布修改后的所述目标组件的代码;其中,
所述创建单元还用于:
利用仓库创建函数在本地建立本地仓库,所述本地仓库的名称与所述远程仓库的名称一致。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至6任一项所述的方法。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6任一项所述的方法。
CN201910716886.2A 2019-08-05 2019-08-05 一种发布代码的方法、装置、介质及计算机设备 Active CN110442371B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910716886.2A CN110442371B (zh) 2019-08-05 2019-08-05 一种发布代码的方法、装置、介质及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910716886.2A CN110442371B (zh) 2019-08-05 2019-08-05 一种发布代码的方法、装置、介质及计算机设备

Publications (2)

Publication Number Publication Date
CN110442371A CN110442371A (zh) 2019-11-12
CN110442371B true CN110442371B (zh) 2022-08-16

Family

ID=68433280

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910716886.2A Active CN110442371B (zh) 2019-08-05 2019-08-05 一种发布代码的方法、装置、介质及计算机设备

Country Status (1)

Country Link
CN (1) CN110442371B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113761074A (zh) * 2020-06-16 2021-12-07 北京沃东天骏信息技术有限公司 富文本信息存储方法、装置和系统
CN111949309A (zh) * 2020-08-07 2020-11-17 北京字节跳动网络技术有限公司 拉取idl文件的方法、装置、计算机设备和存储介质
CN112015465B (zh) * 2020-09-03 2024-05-24 中国平安财产保险股份有限公司 项目工程配置发布方法、装置、计算机设备及存储介质
CN113656005B (zh) * 2021-06-29 2023-11-24 杭州华橙软件技术有限公司 应用组件库构建方法、应用组件配置方法及相关装置
CN114153480A (zh) * 2021-12-06 2022-03-08 北京金堤科技有限公司 代码同步、组件发布方法及其装置、计算机存储介质
CN115857962A (zh) * 2023-02-20 2023-03-28 爱集微咨询(厦门)有限公司 软件项目处理方法、装置、电子设备以及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107122182A (zh) * 2017-04-14 2017-09-01 努比亚技术有限公司 一种代码构建和发布的方法及系统
CN107391968A (zh) * 2017-08-18 2017-11-24 武汉斗鱼网络科技有限公司 一种实现私有pod发布权限控制的方法及装置
CN107423952A (zh) * 2017-07-25 2017-12-01 苏州博纳讯动软件有限公司 一种可扩展的DevOps持续交付系统及其方法
CN108563440A (zh) * 2018-04-26 2018-09-21 武汉斗鱼网络科技有限公司 列表控制器代码自动添加方法、装置及可读存储介质
CN109146251A (zh) * 2018-07-24 2019-01-04 武汉空心科技有限公司 基于组件的开发方法和系统
CN109271142A (zh) * 2018-07-24 2019-01-25 武汉空心科技有限公司 基于模板组件的开发云平台

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107122182A (zh) * 2017-04-14 2017-09-01 努比亚技术有限公司 一种代码构建和发布的方法及系统
CN107423952A (zh) * 2017-07-25 2017-12-01 苏州博纳讯动软件有限公司 一种可扩展的DevOps持续交付系统及其方法
CN107391968A (zh) * 2017-08-18 2017-11-24 武汉斗鱼网络科技有限公司 一种实现私有pod发布权限控制的方法及装置
CN108563440A (zh) * 2018-04-26 2018-09-21 武汉斗鱼网络科技有限公司 列表控制器代码自动添加方法、装置及可读存储介质
CN109146251A (zh) * 2018-07-24 2019-01-04 武汉空心科技有限公司 基于组件的开发方法和系统
CN109271142A (zh) * 2018-07-24 2019-01-25 武汉空心科技有限公司 基于模板组件的开发云平台

Also Published As

Publication number Publication date
CN110442371A (zh) 2019-11-12

Similar Documents

Publication Publication Date Title
CN110442371B (zh) 一种发布代码的方法、装置、介质及计算机设备
US9940108B2 (en) Automated merging in a software development environment
WO2015078333A1 (zh) 虚拟机镜像离线升级方法
US20140297592A1 (en) Computer-readable medium storing program and version control method
WO2014200541A1 (en) App package deployment
CN111104151B (zh) 一种基于Shell脚本的Git代码简化的管理方法
WO2019041891A1 (zh) 升级包的生成方法及装置
CN110990051B (zh) 软件包依赖关系的维护方法、装置、介质和设备
CN111367890A (zh) 一种数据迁移的方法、装置、计算机设备及可读存储介质
CN111984666B (zh) 数据库访问方法、装置、计算机可读存储介质和计算机设备
CN114780135A (zh) 基于git的项目管理方法、装置、电子设备及存储介质
WO2019099008A1 (en) Software builds using a cloud system
CN108694049B (zh) 一种更新软件的方法和设备
JP6336919B2 (ja) ソースコードレビュー方法及びそのシステム
CN109144524B (zh) 一种教育平台上学科游戏的版本发布方法及电子设备
US9626371B2 (en) Attribute selectable file operation
CN111142848A (zh) 一种软件程序编译方法、执行方法及装置
CN114610516A (zh) 应用程序的修复方法、装置、计算机设备以及存储介质
CN113901025A (zh) 数据库管理方法、装置、设备和存储介质
CN115328524A (zh) 补丁合入方法、装置、计算机设备及存储介质
Olsson et al. Git Version Control Cookbook
US11256602B2 (en) Source code file retrieval
CN109992296B (zh) 同步修改一个工程中多个配置文件的方法、装置及系统
CN106528183B (zh) 一种创建控件的方法、装置和计算机程序
CN114020275A (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