CN107729031A - 代码管理方法、装置、计算机设备和计算机可读存储介质 - Google Patents
代码管理方法、装置、计算机设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN107729031A CN107729031A CN201710744853.XA CN201710744853A CN107729031A CN 107729031 A CN107729031 A CN 107729031A CN 201710744853 A CN201710744853 A CN 201710744853A CN 107729031 A CN107729031 A CN 107729031A
- Authority
- CN
- China
- Prior art keywords
- module
- configuration file
- code
- task bag
- title
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种代码管理方法、装置、计算机设备和计算机可读存储介质,该方法包括获取任务包的配置文件,配置文件中包括模块的代码地址及模块的分支,模块的分支是通过模块名称嵌套表示的;检测任务包中是否缺少配置文件中所记录的模块;若是,则根据配置文件中模块的代码地址从代码库中获取任务包中所缺少的模块的代码;根据配置文件中模块的分支,将获取的代码更新到所述任务包中。上述代码管理方法、装置、计算机设备和计算机可读存储介质,配置文件中的模块的代码地址给出了代码的存储地址,模块的分支通过模块名称嵌套给出了模块所属的分支,从而模块可以根据模块名称来得到自己的分支,防止了任务包更新时出现游离分支的情况。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种代码管理方法、装置、计算机设备和计算机可读存储介质。
背景技术
Git(分布式版本控制系统)因其便捷、高效性,被越来越多的开源项目所使用,并且一些传统的非开源项目,也开始逐步考虑使用Git来管理代码。
但是通过Git管理代码时,由于Git中主工程并不直接跟踪子模块的代码,而只是跟踪子模块的commit id(提交码)的改动,因此当将改动的代码提交后,不仅需要到主工程中相应的子模块改动子模块的commit id,还需要将子模块的所有上层模块和主工程的commit id改动,一旦只改动子模块的commit id,该子模块会处于游离状态,在主工程更新时,本次改动就会丢失。
发明内容
基于此,有必要针对通过Git管理代码中工程更新过程时,代码丢失的问题,提供一种代码管理方法、装置、计算机设备和计算机可读存储介质。
一种代码管理方法,所述方法包括:
获取任务包的配置文件,所述配置文件中包括模块的代码地址以及模块的分支,所述模块的分支是通过模块名称嵌套表示的;
检测所述任务包中是否缺少所述配置文件中所记录的模块;
当所述任务包中缺少所述配置文件中所记录的模块时,则根据所述配置文件中模块的代码地址从代码库中获取所述任务包中所缺少的模块的代码;
根据所述配置文件中模块的分支,将获取的代码更新到所述任务包中。
在其中一个实施例中,所述检测所述任务包中是否缺少所述配置文件中所记录的模块的步骤,包括:
检测所述任务包中是否缺少名称与所述配置文件中所记录的模块的名称相匹配的模块;
当所述任务包中缺少名称与所述配置文件中所记录的模块的名称相匹配的模块时,则所述任务包中缺少所述配置文件中所记录的模块;
当所述任务包中不缺少名称与所述配置文件中所记录的模块的名称相匹配的模块时,则检测所述任务包中的模块的版本标签与所述配置文件中所记录的模块的版本标签是否匹配;
当所述任务包中的模块的版本标签与所述配置文件中所记录的模块的版本标签不匹配时,则所述任务包中缺少所述配置文件中所记录的模块。
在其中一个实施例中,所述获取任务包的配置文件的步骤之前,还包括:
获取输入的代码、输入的与所述输入的代码相对应的模块的名称以及输入的与所述输入的代码相对应的模块的分支;
根据所述输入的代码的生成代码地址;
根据所述输入的代码的代码地址、输入的模块的名称以及输入的模块的分支,对任务包的配置文件进行修改并提交修改后的配置文件;
所述获取任务包的配置文件的步骤,包括:
获取任务包的修改后的配置文件。
在其中一个实施例中,所述对所述任务包的配置文件进行修改并提交修改后的配置文件的步骤之后,还包括:
获取所述任务包的修改后的配置文件与修改前的配置文件的差别;
将所述任务包的修改后的配置文件与修改前的配置文件的差别发送至审查端;
所述获取任务包的修改后的配置文件的步骤,包括:
当接收到所述审查端返回的表示审查通过的确认信息时,则获取任务包的修改后的配置文件。
在其中一个实施例中,所述根据所述输入的代码的代码地址、输入的模块的名称以及输入的模块的分支,对任务包的配置文件进行修改并提交修改后的配置文件的步骤之后,还包括:
检测是否接收到针对提交码的修改指令;
当接收到针对提交码的修改指令时,则生成关于所述提交码的修改指令的无效提示。
一种代码管理装置,所述装置包括:
配置文件获取模块,用于获取任务包的配置文件,所述配置文件中包括模块的代码地址以及模块的分支,所述模块的分支是通过模块名称嵌套表示的;
检测模块,用于检测所述任务包中是否缺少所述配置文件中所记录的模块;
代码获取模块,用于当所述任务包中缺少所述配置文件中所记录的模块时,则根据所述配置文件中模块的代码地址从代码库中获取所述任务包中所缺少的模块的代码;
更新模块,用于根据所述配置文件中模块的分支,将获取的代码更新到所述任务包中。
在其中一个实施例中,所述检测模块包括:
名称检测单元,用于检测所述任务包中是否缺少名称与所述配置文件中所记录的模块的名称相匹配的模块,当所述任务包中缺少名称与所述配置文件中所记录的模块的名称相匹配的模块时,则所述任务包中缺少所述配置文件中所记录的模块;
版本标签检测单元,用于当所述任务包中不缺少名称与所述配置文件中所记录的模块的名称相匹配的模块时,则检测所述任务包中的模块的版本标签与所述配置文件中所记录的模块的版本标签是否匹配;且当所述任务包中的模块的版本标签与所述配置文件中所记录的模块的版本标签不匹配时,则所述任务包中缺少所述配置文件中所记录的模块。
在其中一个实施例中,所述装置还包括:
输入获取模块,用于获取输入的代码、输入的与所述输入的代码相对应的模块的名称以及输入的与所述输入的代码相对应的模块的分支;
生成模块,用于根据所述输入的代码的生成代码地址;
修改模块,用于根据所述输入的代码地址、输入的模块的名称以及输入的模块的分支,对任务包的配置文件进行修改并提交修改后的配置文件。
一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法中的步骤。
一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的步骤。
上述代码管理方法、装置、计算机设备和计算机可读存储介质,为任务包配置了配置文件,配置文件中的模块的代码地址给出了各个模块的代码的存储地址,模块的分支通过模块名称嵌套的方式给出了各个模块所属的分支,从而各个模块可以根据模块名称来得到自己的分支,防止了任务包更新时出现游离分支的情况,且当任务包需要更新时,仅需要根据配置文件中的模块的代码地址和模块的分支对任务包进行更新即可,而不再需要人工对任务包中的模块进行添加操作,提高了任务包更新的效率。
附图说明
图1为一实施例中的代码管理方法的应用环境图;
图2为一实施例中的代码管理方法的流程图;
图3为图2所示实施例中的步骤S204的流程;
图4为一实施例中任务包的配置文件的示意图;
图5为一实施例中的修改配置文件步骤的时序图;
图6为一实施例中的代码管理装置的示意图;
图7为一实施例中的计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
在详细说明根据本发明的实施例前,应该注意到的是,所述的实施例主要在于与代码管理方法、装置、计算机设备和计算机可读存储介质相关的步骤和系统组件的组合。因此,所属系统组件和方法步骤已经在附图中通过常规符号在适当的位置表示出来了,并且只示出了与理解本发明的实施例有关的细节,以免因对于得益于本发明的本领域普通技术人员而言显而易见的那些细节模糊了本发明的公开内容。
在本文中,诸如左和右,上和下,前和后,第一和第二之类的关系术语仅仅用来区分一个实体或动作与另一个实体或动作,而不一定要求或暗示这种实体或动作之间的任何实际的这种关系或顺序。术语“包括”、“包含”或任何其他变体旨在涵盖非排他性的包含,由此使得包括一系列要素的过程、方法、物品或者设备不仅包含这些要素,而且还包含没有明确列出的其他要素,或者为这种过程、方法、物品或者设备所固有的要素。
参阅图1,图1为一实施例中的代码管理方法的应用环境图,其中包括数个计算机设备以及审查端,数个计算机设备可以与审查端进行通信,研发人员可以在计算机设备上编写新的代码,并可以将编写的代码发送至审查端进行审查,只有审查通过的代码可以更新到任务包中,以便于将任务包进行存储后向用户终端下发,从而用户终端可以根据该任务包更新相应的内容,例如客户端APP等。
请参阅图2,在其中一个实施例中,提供一种代码管理方法,本实施例以该方法应用到上述图1中的计算机设备来举例说明。该计算机设备上运行有代码管理程序,通过该代码管理程序来实施代码管理方法。该方法具体包括如下步骤:
S202:获取任务包的配置文件,配置文件中包括模块的代码地址以及模块的分支,模块的分支是通过模块名称嵌套表示的。
具体地,任务包是指软件开发过程中的工程,例如一个应用程序所对应的工程即对应一个任务包,其包含该应用程序的所有的代码,且代码分模块进行存储,例如一个应用程序可以提供不同的功能,一个功能则可以为一个模块。配置文件是指该任务包的配置文件,其中存储有关于该任务包中所有模块的名称、模块的代码地址以及模块的分支。其中模块的代码地址即该模块的代码所存储的地址,模块的分支是通过模块名称嵌套表示的,例如modules模块其是处于release模块下,则其分支表示为release,release模块嵌套于abc模块下,则release模块的分支表示为abc。此外,如果modules模块其是处于release模块下,release是处于abc模块下,则modules模块的分支还可以表示为abc-release,从而表示modules模块首先嵌套于release模块下,然后release模块嵌套于abc模块。
S204:检测任务包中是否缺少配置文件中所记录的模块。
具体地,当获取到任务包的配置文件后,首先判断任务包中是否缺少配置文件中所记录的模块,如果任务包中缺少配置文件中所记录的模块,则会导致任务包未更新,从而需要根据配置文件更新任务包,以保证任务包的完整性。
S206:当任务包中缺少配置文件中所记录的模块时,则根据配置文件中模块的代码地址从代码库中获取任务包中所缺少的模块的代码。
具体地,计算机设备可以根据模块的代码地址从代码库中获取任务包中所缺少的模块的代码,代码库为存储有所有模块的代码的数据库。当任务包中缺少配置文件中所记录的模块时,则根据配置文件来更新任务包,例如上个例子中,当任务包缺少modules模块时,则根据配置文件中modules模块的代码地址,来读取modules模块的代码,从而可以将modules模块的代码更新到任务包中,从而可以保证任务包的完整性。
S208:根据配置文件中模块的分支,将获取的代码更新到任务包中。
具体地,在上述例子中,即使获取到modules模块的代码,如果只是随意将modules模块代码保存到任务包中,则会造成任务包中存在大量的无联系的代码,从而任务包更新时,该些代码极易丢失,为了避免该种情况,计算机设备从配置文件中相应地获取到modules模块的分支,即release模块,这样可以根据该分支将代码更新到release模块,而release模块是abc模块的一个分支,从而可以根据release模块的更新再更新abc模块,直至到任务包的主模块,这样可以保证每一个增加的模块均可以与任务包中的其他模块进行关联,防止出现游离分支。
上述代码管理方法,为任务包配置了配置文件,配置文件中的模块的代码地址给出了各个模块的代码的存储地址,模块的分支通过模块名称嵌套的方式给出了各个模块所属的分支,从而各个模块可以根据模块名称来得到自己的分支,防止了任务包更新时出现游离分支的情况,且当任务包需要更新时,仅需要根据配置文件中的模块的代码地址和模块的分支对任务包进行更新即可,而不再需要人工对任务包中的模块进行添加操作,提高了任务包更新的效率。
在其中一个实施例中,参与图3,图3为图2所示实施例中的步骤S204的流程,该步骤S204,即检测任务包中是否缺少配置文件中所记录的模块的步骤可以包括:
S302:检测任务包中是否缺少名称与配置文件中所记录的模块的名称相匹配的模块。
具体地,参阅图4,图4为一实施例中任务包的配置文件的示意图,其中配置文件中包含ver字段,即配置文件的版本号,该配置文件的版本号可以对应于应用程序的版本。配置文件中还包括数个模块例如app模块、common模块、framework模块、react_native/node_modules模块、react_native模块以及react_native/packager模块等,在其他的配置文件中还可以包含其他的模块,其中各个模块以模块名称的形式存在于配置文件中。配置文件中的各个模块包括两个配置信息,一个是branch,即分支,其可以表示模块所隶属的分支,例如app模块,隶属于release-1.0.0模块,另外一个是repo,即模块的代码地址,例如app模块的代码地址为http://xxx.xxx.xxx/xxx/app.git。其中release-1.0.0模块种的1.0.0表示release模块的版本,以方便各个模块的更新,从而使得任务包即可以根据任务包的版本号进行整体的更新,还可以根据任务包中各个模块的版本号进行局部的更新,从而使得任务包更新时更加灵活。
S304:当任务包中缺少名称与配置文件中所记录的模块的名称相匹配的模块时,则任务包中缺少配置文件中所记录的模块。
具体地,在判断任务包中是否缺少配置文件中所记录的模块时,首先可以根据模块的名称来判断,即判断任务包中的模块的名称是否均在配置文件中,如果存在某一模块名称在配置文件中出现,但未存在于任务包中,则表示该任务包中缺少该模块,从而计算机设备需要根据配置文件中所记录的该模块的代码地址和模块的分支将该模块更新到任务包中。此外如果某一模块存在于任务包中,但不存在于配置文件中,即任务包中存在某一模块的模块名称与配置文件中所记录的模块名称不匹配,则计算机设备直接删除位于任务包中的该模块即可。
S306:当任务包中不缺少名称与配置文件中所记录的模块的名称相匹配的模块时,则检测任务包中的模块的版本标签与配置文件中所记录的模块的版本标签是否匹配。
具体地,如果任务包中不缺少名称与配置文件中所记录的模块的名称相匹配的模块时,即任务包中的模块与配置文件中所记录的模块的名称均相同,则可以继续监测任务包中模块的标签是否与配置文件中模块的标签一致,例如当任务包中的release模块的的标签为1.2.0,而配置文件中release模块的标签为1.3.0时,此时也会认为任务包中缺少配置文件中所记录的模块。
S308:当任务包中的模块的版本标签与配置文件中所记录的模块的版本标签不匹配时,则任务包中缺少配置文件中所记录的模块。
具体地,当任务包中的模块的版本标签与配置文件所记录的模块的版本标签不匹配时,即模块的版本不一致的,则也会认为任务包中缺少配置文件中所记录的模块,从而需要计算机设备需要根据配置文件中所记录的该模块的代码地址和模块的分支将该模块更新到任务包中。
且如图4中的“release-1.0.0”中的“1.0.0”即为版本标签,这样可以应用到代码查询、代码回滚中,例如在代码回滚时可以包括:获取存储在计算机设备中的目标版本标签;将配置文件中模块的当前版本标签替换为目标版本标签,然后继续当更新任务包时,则读取任务包的配置文件,即可以将任务包中的特定的模块更新到目标版本,而不再需要手动的更改代码等。
上述实施例中,既通过模块名称又通过模块名称中的版本标签来判断任务包中是否缺少配置文件中所记录的模块,从而可以准确地根据配置文件来更新任务包中的模块,不需要人工干预,节省了人力。
在其中一个实施例中,在获取任务包的配置文件的步骤之前还可以包括:获取输入的代码、输入的与输入的代码相对应的模块的名称以及输入的与输入的代码相对应的模块的分支;根据输入的代码的生成代码地址;根据输入的代码的代码地址、输入的模块的名称以及输入的模块的分支,对任务包的配置文件进行修改并提交修改后的配置文件。从而获取任务包的配置文件的步骤,包括:获取任务包的修改后的配置文件。
在其中一个实施例中,对任务包的配置文件进行修改并提交修改后的配置文件的步骤之后,还可以包括:获取任务包的修改后的配置文件与修改前的配置文件的差别;将任务包的修改后的配置文件与修改前的配置文件的差别发送至审查端。从而获取任务包的修改后的配置文件的步骤可以包括:当接收到审查端返回的表示审查通过的确认信息时,则获取任务包的修改后的配置文件。
具体地,参阅图5,图5为一实施例中的修改配置文件步骤的时序图,该修改配置文件的步骤可以包括:
首先获取输入的代码、输入的与输入的代码相对应的模块的名称以及输入的与输入的代码相对应的模块的分支,例如研发人员在计算机设备上开发性的代码,并将新的代码存储在计算机设备的存储器中,然后打开配置文件,将模块的名称和分支写入配置文件中。此外计算机设备可以根据输入的代码的生成代码地址,从而计算机设备可以将该生成的模块代码地址写入配置文件中,或者研发人员也可以手动将该地址输入到配置文件中。即根据输入的代码的代码地址、输入的模块的名称以及输入的模块的分支,对任务包的配置文件进行修改并提交修改后的配置文件。例如当研发人员修改完配置文件后,需要对配置文件进行提交,以便于审核端的研发人员来审核该修改是否通过。
其次,在研发人员提交了关于配置文件的修改后,计算机设备首先获取任务包的修改后的配置文件与修改前的配置文件的差别,该差别包括配置文件中的新增加的模块名称、新增加的模块的分支以及新增加的模块的代码地址,从而审核端的研发人员可以根据该新增加的代码地址查询到相应的新的代码。该差别还可以包括配置文件中减少的模块的名称、减少的模块的分支以及减少的模块的代码地址,以便于审核端的研发人员可以根据该些信息判断该模块的删除是否正确。此外该差别还可以包括配置文件中更改版本的模块的新的版本和旧的版本,从而审核端的研发人员可以直接看到模块的新版本和旧版本之间的差别。
第三,将任务包的修改后的配置文件与修改前的配置文件的差别发送至审查端。在该实施例中,为了减少数据的传输,只发送修改后的配置文件与修改前的配置文件的差别,且由于审查端一般都会存储每一次的配置文件,因此只发送修改后的配置文件与修改前的配置文件的差别,并不会影响审查端研发人员查看到完整的配置文件,另外,只发送修改后的配置文件与修改前的配置文件的差别,审查端研发人员可以直接获取到本次修改的不同,从而可以缩短审查时间。
第四,审查端接收到修改后的配置文件与修改前的配置文件的差别后,研发人员可以对该差别进行审核,从而来确定本次修改是否可以直接应用。此外为了减少审核端研发人员的审核任务,审核端可以首先自动的检测所发送的差别是否存在语法错误等,如果存在则直接返回计算机设备,本次修改不通过,并将不通过的原因发送至计算机设备,以便于研发人员及时了解,当该差别不存在语法错误时,则可以提交审核端的研发人员进行审核,如果审核通过,则向计算机设备返回确认信息,当计算机接收到审查端返回的表示审查通过的确认信息时,则获取任务包的修改后的配置文件,从而可以进行任务包的更新。
上述实施例中,在任务包更新前,首先对任务包更新所依据的配置文件进行审核,只有审核通过后,计算机设备才会依据修改后的配置文件对任务包进行更新,从而可以保证更新到任务包中的模块的正确性,减少代码回流等情况的发生。
在其中一个实施例中,根据代码地址、模块的名称以及模块的分支,对任务包的配置文件进行修改并提交修改后的配置文件的步骤之后,还包括检测是否接收到针对提交码的修改指令;当接收到针对提交码的修改指令时,则生成关于提交码的修改指令的无效提示。
具体地,由于该代码管理的方法是基于git进行的,git中存在提交码,即commitid的修改,且该commit id修改后,会导致任务包更新时,根据该commit id进行修改,为了避免该种情况的发生,本实施例中一直将提交码进行固定,例如监测到针对提交码的修改指令时,则提示拒绝提交码的修改,例如可以以弹出框的形式来提示研发人员,从而保证提交码不变,任务包的更新只根据配置文件,而不需要考虑提交码的更新。
上述实施例中,通过检测是否接收到针对提交码的修改指令来拒绝提交码的更新,从而可以保证任务包的更新只根据配置文件,而不需要考虑提交码的更新,保证了任务包更新的准确性。
参阅图6,图6为一实施例中的代码管理装置的示意图,该代码管理装置包括:
配置文件获取模块100,用于获取任务包的配置文件,配置文件中包括模块的代码地址以及模块的分支,模块的分支是通过模块名称嵌套表示的。
检测模块200,用于检测任务包中是否缺少配置文件中所记录的模块。
代码获取模块300,用于当任务包中缺少配置文件中所记录的模块时,则根据配置文件中模块的代码地址从代码库中获取任务包中所缺少的模块的代码。
更新模块400,用于根据配置文件中模块的分支,将获取的代码更新到任务包中。
在其中一个实施例中,检测模块200可以包括:
名称检测单元,用于检测任务包中是否缺少名称与配置文件中所记录的模块的名称相匹配的模块,当任务包中缺少名称与配置文件中所记录的模块的名称相匹配的模块时,则任务包中缺少配置文件中所记录的模块。
版本标签检测单元,用于当任务包中不缺少名称与配置文件中所记录的模块的名称相匹配的模块时,则检测任务包中的模块的版本标签与配置文件中所记录的模块的版本标签是否匹配;且当任务包中的模块的版本标签与配置文件中所记录的模块的版本标签不匹配时,则任务包中缺少配置文件中所记录的模块。
在其中一个实施例中,该代码管理装置300还可以包括:
输入获取模块,用于获取输入的代码、输入的与输入的代码相对应的模块的名称以及输入的与输入的代码相对应的模块的分支。
生成模块,用于根据输入的代码的生成代码地址。
修改模块,用于根据输入的代码的代码地址、输入的模块的名称以及输入的模块的分支,对任务包的配置文件进行修改并提交修改后的配置文件。
在其中一个实施例中,该代码管理装置还可以包括:
差别获取模块,用于获取任务包的修改后的配置文件与修改前的配置文件的差别。
发送模块,用于将任务包的修改后的配置文件与修改前的配置文件的差别发送至审查端。
配置文件获取模块还用于当接收到审查端返回的表示审查通过的确认信息时,则获取任务包的修改后的配置文件。
在其中一个实施例中,该代码管理装置还可以包括:
检测模块,用于检测是否接收到针对提交码的修改指令;当接收到针对提交码的修改指令时,则生成关于提交码的修改指令的无效提示。
上述关于代码管理装置的限定可以参加上文中关于代码管理方法的限定,在此不再赘述。
请参阅图7,图7为一实施例中的计算机设备的结构示意图,该计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其中该存储器可以包括非易失性存储介质以及内存储器,该计算机程序可以存储在该非易失性存储介质中,处理器执行程序时实现以下步骤:获取任务包的配置文件,配置文件中包括模块的代码地址以及模块的分支,模块的分支是通过模块名称嵌套表示的;检测任务包中是否缺少配置文件中所记录的模块;当任务包中缺少配置文件中所记录的模块时,则根据配置文件中模块的代码地址从代码库中获取任务包中所缺少的模块的代码;根据配置文件中模块的分支,将获取的代码更新到任务包中。
在其中一个实施例中,处理器执行程序时还可以实现以下步骤:检测任务包中是否缺少名称与配置文件中所记录的模块的名称相匹配的模块;当任务包中缺少名称与配置文件中所记录的模块的名称相匹配的模块时,则任务包中缺少配置文件中所记录的模块;当任务包中不缺少名称与配置文件中所记录的模块的名称相匹配的模块时,则检测任务包中的模块的版本标签与配置文件中所记录的模块的版本标签是否匹配;当任务包中的模块的版本标签与配置文件中所记录的模块的版本标签不匹配时,则任务包中缺少配置文件中所记录的模块。
在其中一个实施例中,处理器执行程序时还可以实现以下步骤:获取输入的代码、输入的与输入的代码相对应的模块的名称以及输入的与输入的代码相对应的模块的分支;根据输入的代码的生成代码地址;根据输入的代码的代码地址、输入的模块的名称以及输入的模块的分支,对任务包的配置文件进行修改并提交修改后的配置文件;获取任务包的配置文件的步骤,包括:获取任务包的修改后的配置文件。
在其中一个实施例中,处理器执行程序时还可以实现以下步骤:获取任务包的修改后的配置文件与修改前的配置文件的差别;将任务包的修改后的配置文件与修改前的配置文件的差别发送至审查端;获取任务包的修改后的配置文件的步骤,包括:当接收到审查端返回的表示审查通过的确认信息时,则获取任务包的修改后的配置文件。
在其中一个实施例中,处理器执行程序时还可以实现以下步骤:检测是否接收到针对提交码的修改指令;当接收到针对提交码的修改指令时,则生成关于提交码的修改指令的无效提示。
上述对于终端的限定可以参见上文中对于代码管理方法的具体限定,在此不再赘述。
请继续参阅图7,还提供一种计算机可读存储介质,其上存储有计算机程序,如图7中所示的非易失性存储介质,其中,该程序被处理器执行时实现以下步骤:获取任务包的配置文件,配置文件中包括模块的代码地址以及模块的分支,模块的分支是通过模块名称嵌套表示的;检测任务包中是否缺少配置文件中所记录的模块;当任务包中缺少配置文件中所记录的模块时,则根据配置文件中模块的代码地址从代码库中获取任务包中所缺少的模块的代码;根据配置文件中模块的分支,将获取的代码更新到任务包中。
在其中一个实施例中,该程序被处理器执行时还可以实现以下步骤:检测任务包中是否缺少名称与配置文件中所记录的模块的名称相匹配的模块;当任务包中缺少名称与配置文件中所记录的模块的名称相匹配的模块时,则任务包中缺少配置文件中所记录的模块;当任务包中不缺少名称与配置文件中所记录的模块的名称相匹配的模块时,则检测任务包中的模块的版本标签与配置文件中所记录的模块的版本标签是否匹配;当任务包中的模块的版本标签与配置文件中所记录的模块的版本标签不匹配时,则任务包中缺少配置文件中所记录的模块。
在其中一个实施例中,该程序被处理器执行时还可以实现以下步骤:获取输入的代码、输入的与输入的代码相对应的模块的名称以及输入的与输入的代码相对应的模块的分支;根据输入的代码的生成代码地址;根据输入的代码的代码地址、输入的模块的名称以及输入的模块的分支,对任务包的配置文件进行修改并提交修改后的配置文件;获取任务包的配置文件的步骤,包括:获取任务包的修改后的配置文件。
在其中一个实施例中,该程序被处理器执行时还可以实现以下步骤:获取任务包的修改后的配置文件与修改前的配置文件的差别;将任务包的修改后的配置文件与修改前的配置文件的差别发送至审查端;获取任务包的修改后的配置文件的步骤,包括:当接收到审查端返回的表示审查通过的确认信息时,则获取任务包的修改后的配置文件。
在其中一个实施例中,该程序被处理器执行时还可以实现以下步骤:检测是否接收到针对提交码的修改指令;当接收到针对提交码的修改指令时,则生成关于提交码的修改指令的无效提示。
上述对于计算机可读存储介质的限定可以参见上文中对于代码管理方法的具体限定,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种代码管理方法,其特征在于,所述方法包括:
获取任务包的配置文件,所述配置文件中包括模块的代码地址以及模块的分支,所述模块的分支是通过模块名称嵌套表示的;
检测所述任务包中是否缺少所述配置文件中所记录的模块;
当所述任务包中缺少所述配置文件中所记录的模块时,则根据所述配置文件中模块的代码地址从代码库中获取所述任务包中所缺少的模块的代码;
根据所述配置文件中模块的分支,将获取的代码更新到所述任务包中。
2.根据权利要求1所述的方法,其特征在于,所述检测所述任务包中是否缺少所述配置文件中所记录的模块的步骤,包括:
检测所述任务包中是否缺少名称与所述配置文件中所记录的模块的名称相匹配的模块;
当所述任务包中缺少名称与所述配置文件中所记录的模块的名称相匹配的模块时,则所述任务包中缺少所述配置文件中所记录的模块;
当所述任务包中不缺少名称与所述配置文件中所记录的模块的名称相匹配的模块时,则检测所述任务包中的模块的版本标签与所述配置文件中所记录的模块的版本标签是否匹配;
当所述任务包中的模块的版本标签与所述配置文件中所记录的模块的版本标签不匹配时,则所述任务包中缺少所述配置文件中所记录的模块。
3.根据权利要求1所述的方法,其特征在于,所述获取任务包的配置文件的步骤之前,还包括:
获取输入的代码、输入的与所述输入的代码相对应的模块的名称以及输入的与所述输入的代码相对应的模块的分支;
根据所述输入的代码的生成代码地址;
根据所述输入的代码的代码地址、输入的模块的名称以及输入的模块的分支,对任务包的配置文件进行修改并提交修改后的配置文件;
所述获取任务包的配置文件的步骤,包括:
获取任务包的修改后的配置文件。
4.根据权利要求3所述的方法,其特征在于,所述对任务包的配置文件进行修改并提交修改后的配置文件的步骤之后,还包括:
获取所述任务包的修改后的配置文件与修改前的配置文件的差别;
将所述任务包的修改后的配置文件与修改前的配置文件的差别发送至审查端;
所述获取任务包的修改后的配置文件的步骤,包括:
当接收到所述审查端返回的表示审查通过的确认信息时,则获取任务包的修改后的配置文件。
5.根据权利要求3所述的方法,其特征在于,所述根据所述输入的代码的代码地址、输入的模块的名称以及输入的模块的分支,对任务包的配置文件进行修改并提交修改后的配置文件的步骤之后,还包括:
检测是否接收到针对提交码的修改指令;
当接收到针对提交码的修改指令时,则生成关于所述提交码的修改指令的无效提示。
6.一种代码管理装置,其特征在于,所述装置包括:
配置文件获取模块,用于获取任务包的配置文件,所述配置文件中包括模块的代码地址以及模块的分支,所述模块的分支是通过模块名称嵌套表示的;
检测模块,用于检测所述任务包中是否缺少所述配置文件中所记录的模块;
代码获取模块,用于当所述任务包中缺少所述配置文件中所记录的模块时,则根据所述配置文件中模块的代码地址从代码库中获取所述任务包中所缺少的模块的代码;
更新模块,用于根据所述配置文件中模块的分支,将获取的代码更新到所述任务包中。
7.根据权利要求6所述的装置,其特征在于,所述检测模块包括:
名称检测单元,用于检测所述任务包中是否缺少名称与所述配置文件中所记录的模块的名称相匹配的模块,当所述任务包中缺少名称与所述配置文件中所记录的模块的名称相匹配的模块时,则所述任务包中缺少所述配置文件中所记录的模块;
版本标签检测单元,用于当所述任务包中不缺少名称与所述配置文件中所记录的模块的名称相匹配的模块时,则检测所述任务包中的模块的版本标签与所述配置文件中所记录的模块的版本标签是否匹配;且当所述任务包中的模块的版本标签与所述配置文件中所记录的模块的版本标签不匹配时,则所述任务包中缺少所述配置文件中所记录的模块。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
输入获取模块,用于获取输入的代码、输入的与所述输入的代码相对应的模块的名称以及输入的与所述输入的代码相对应的模块的分支;
生成模块,用于根据所述输入的代码的生成代码地址;
修改模块,用于根据所述输入的代码地址、输入的模块的名称以及输入的模块的分支,对任务包的配置文件进行修改并提交修改后的配置文件。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任意一项所述方法中的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至5任一项所述方法中的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710744853.XA CN107729031B (zh) | 2017-08-25 | 2017-08-25 | 代码管理方法、装置、计算机设备和计算机可读存储介质 |
PCT/CN2018/079963 WO2019037418A1 (zh) | 2017-08-25 | 2018-03-22 | 代码管理方法、装置、计算机设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710744853.XA CN107729031B (zh) | 2017-08-25 | 2017-08-25 | 代码管理方法、装置、计算机设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107729031A true CN107729031A (zh) | 2018-02-23 |
CN107729031B CN107729031B (zh) | 2019-08-20 |
Family
ID=61205309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710744853.XA Active CN107729031B (zh) | 2017-08-25 | 2017-08-25 | 代码管理方法、装置、计算机设备和计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107729031B (zh) |
WO (1) | WO2019037418A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086362A (zh) * | 2018-07-19 | 2018-12-25 | 北京首汽智行科技有限公司 | 多模块项目的管理方法 |
WO2019037418A1 (zh) * | 2017-08-25 | 2019-02-28 | 深圳壹账通智能科技有限公司 | 代码管理方法、装置、计算机设备和计算机可读存储介质 |
CN109783128A (zh) * | 2018-12-13 | 2019-05-21 | 平安普惠企业管理有限公司 | 代码改动通知方法、设备、存储介质及装置 |
CN109871229A (zh) * | 2019-01-16 | 2019-06-11 | 平安普惠企业管理有限公司 | 代码文本的管理方法、装置、存储介质及终端设备 |
CN110597780A (zh) * | 2019-08-09 | 2019-12-20 | 甘肃万华金慧科技股份有限公司 | 基础设置管理系统 |
CN111309369A (zh) * | 2018-12-12 | 2020-06-19 | 北京奇虎科技有限公司 | 基于Git代码仓库的代码管理方法及装置 |
CN111324373A (zh) * | 2018-12-13 | 2020-06-23 | 北京奇虎科技有限公司 | 多个工程文件上传代码仓库的方法及装置、计算设备 |
CN111352649A (zh) * | 2018-12-24 | 2020-06-30 | 北京嘀嘀无限科技发展有限公司 | 代码处理方法、装置、服务器及可读存储介质 |
CN115543394A (zh) * | 2022-12-01 | 2022-12-30 | 云账户技术(天津)有限公司 | App动态更新管理方法、系统、电子设备和可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929600A (zh) * | 2012-06-13 | 2013-02-13 | 许继集团有限公司 | 基于elf的监控系统版本识别方法 |
US8954928B2 (en) * | 2012-05-31 | 2015-02-10 | International Business Machines Corporation | Version labeling in a version control system |
CN106886445A (zh) * | 2016-06-23 | 2017-06-23 | 阿里巴巴集团控股有限公司 | Java数据包生成方法及设备和信息提取方法及设备 |
CN106886420A (zh) * | 2017-03-30 | 2017-06-23 | 努比亚技术有限公司 | 一种程序代码管理装置、方法及程序代码管理器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677831B (zh) * | 2013-12-12 | 2017-02-08 | 迈普通信技术股份有限公司 | 在线代码审查系统及方法 |
CN107729031B (zh) * | 2017-08-25 | 2019-08-20 | 深圳壹账通智能科技有限公司 | 代码管理方法、装置、计算机设备和计算机可读存储介质 |
-
2017
- 2017-08-25 CN CN201710744853.XA patent/CN107729031B/zh active Active
-
2018
- 2018-03-22 WO PCT/CN2018/079963 patent/WO2019037418A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8954928B2 (en) * | 2012-05-31 | 2015-02-10 | International Business Machines Corporation | Version labeling in a version control system |
CN102929600A (zh) * | 2012-06-13 | 2013-02-13 | 许继集团有限公司 | 基于elf的监控系统版本识别方法 |
CN106886445A (zh) * | 2016-06-23 | 2017-06-23 | 阿里巴巴集团控股有限公司 | Java数据包生成方法及设备和信息提取方法及设备 |
CN106886420A (zh) * | 2017-03-30 | 2017-06-23 | 努比亚技术有限公司 | 一种程序代码管理装置、方法及程序代码管理器 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019037418A1 (zh) * | 2017-08-25 | 2019-02-28 | 深圳壹账通智能科技有限公司 | 代码管理方法、装置、计算机设备和计算机可读存储介质 |
CN109086362A (zh) * | 2018-07-19 | 2018-12-25 | 北京首汽智行科技有限公司 | 多模块项目的管理方法 |
CN111309369A (zh) * | 2018-12-12 | 2020-06-19 | 北京奇虎科技有限公司 | 基于Git代码仓库的代码管理方法及装置 |
CN111309369B (zh) * | 2018-12-12 | 2024-03-29 | 北京奇虎科技有限公司 | 基于Git代码仓库的代码管理方法及装置 |
CN109783128A (zh) * | 2018-12-13 | 2019-05-21 | 平安普惠企业管理有限公司 | 代码改动通知方法、设备、存储介质及装置 |
CN111324373A (zh) * | 2018-12-13 | 2020-06-23 | 北京奇虎科技有限公司 | 多个工程文件上传代码仓库的方法及装置、计算设备 |
CN111324373B (zh) * | 2018-12-13 | 2023-12-05 | 北京奇虎科技有限公司 | 多个工程文件上传代码仓库的方法及装置、计算设备 |
CN111352649A (zh) * | 2018-12-24 | 2020-06-30 | 北京嘀嘀无限科技发展有限公司 | 代码处理方法、装置、服务器及可读存储介质 |
CN111352649B (zh) * | 2018-12-24 | 2023-09-22 | 北京嘀嘀无限科技发展有限公司 | 代码处理方法、装置、服务器及可读存储介质 |
CN109871229A (zh) * | 2019-01-16 | 2019-06-11 | 平安普惠企业管理有限公司 | 代码文本的管理方法、装置、存储介质及终端设备 |
CN110597780A (zh) * | 2019-08-09 | 2019-12-20 | 甘肃万华金慧科技股份有限公司 | 基础设置管理系统 |
CN115543394A (zh) * | 2022-12-01 | 2022-12-30 | 云账户技术(天津)有限公司 | App动态更新管理方法、系统、电子设备和可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2019037418A1 (zh) | 2019-02-28 |
CN107729031B (zh) | 2019-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107729031B (zh) | 代码管理方法、装置、计算机设备和计算机可读存储介质 | |
US7761786B2 (en) | Reusable XPath validation expressions | |
CN109947773A (zh) | 在多租户数据库系统中部署对键模式的改变 | |
US10970673B2 (en) | Bill of material synchronization | |
US20160306627A1 (en) | Determining errors and warnings corresponding to a source code revision | |
US20060288269A1 (en) | System and method for electronic document generation and delivery | |
CN106201861A (zh) | 一种代码质量的检测方法及装置 | |
CN109902016A (zh) | 一种Web的测试方法及测试平台 | |
CN107038519B (zh) | 用于系统之间的双向数据同步的方法和系统 | |
CN107025108B (zh) | 从源代码管理(scm)系统将分级数据导出到产品生命周期管理(plm)系统 | |
CN109783543A (zh) | 数据查询方法、装置、设备和存储介质 | |
CN108304991A (zh) | 产品缺陷管理方法、装置、计算机设备和存储介质 | |
Dam et al. | Managing changes in the enterprise architecture modelling context | |
CN103107919B (zh) | 一种网络资源建模方法和系统 | |
US7818288B1 (en) | eTOM enhancement of functional requirements modeling | |
CN103019931B (zh) | Asn.1接口的检测处理方法和装置 | |
CN116893822A (zh) | 工作流引擎多环境部署方法和系统、电子设备、存储介质 | |
CN102663205B (zh) | 一种车辆装配车间工装现场管理的软件实现方法及其系统 | |
CN110096658A (zh) | 一种数据埋点方法及装置 | |
CN111310425B (zh) | 清单智能化的系统实现方法和智能清单系统 | |
CN112817931B (zh) | 一种增量版本文件的生成方法及装置 | |
CN106990978A (zh) | 从产品生命周期管理(plm)系统向源代码管理(scm)系统导出分层数据 | |
US10719568B2 (en) | Fixing embedded richtext links in copied related assets | |
KR20210051817A (ko) | 개방형 인터페이스 기반 인증 확인 정보 서비스 제공 시스템 및 방법 | |
Feldman et al. | IR to RIMS: Transforming an institutional repository into a Research Information Management System |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180524 Address after: 518052 Room 201, building A, 1 front Bay Road, Shenzhen Qianhai cooperation zone, Shenzhen, Guangdong Applicant after: Shenzhen one ledger Intelligent Technology Co., Ltd. Address before: 200000 Xuhui District, Shanghai Kai Bin Road 166, 9, 10 level. Applicant before: Shanghai Financial Technologies Ltd |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |