CN111104125B - 智能集成版本管理方法、装置、介质及电子设备 - Google Patents
智能集成版本管理方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN111104125B CN111104125B CN201911130928.0A CN201911130928A CN111104125B CN 111104125 B CN111104125 B CN 111104125B CN 201911130928 A CN201911130928 A CN 201911130928A CN 111104125 B CN111104125 B CN 111104125B
- Authority
- CN
- China
- Prior art keywords
- version
- item
- information
- rollback
- latest
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 claims abstract description 29
- 230000004044 response Effects 0.000 claims abstract description 21
- 238000004590 computer program Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 13
- 230000002452 interceptive effect Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/26—Government or public services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Tourism & Hospitality (AREA)
- Human Resources & Organizations (AREA)
- Educational Administration (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种智能集成版本管理方法、装置、介质及电子设备,该方法包括:响应于接收到用户对项目的发布命令,确定项目的最新版本;在确定了项目的最新版本后,从Git服务器拉取项目的最新版本的代码,并且发布项目的最新版本到Web服务器;在发布了项目的最新版本后,在本地记录项目的最新版本对应的版本信息和状态信息;响应于接收到用户对项目的回退命令,基于本地记录的版本信息和状态信息确定项目的回退版本,并且根据项目的回退版本进行回退操作。本发明实施例的技术方案实现了版本管理的高效化、简单化和集约化,并且提高了版本管理的可靠性。
Description
技术领域
本发明涉及产品管理技术领域,具体而言,涉及一种智能集成版本管理方法、装置、介质及电子设备。
背景技术
在养老产业领域,与养老相关的系统、智能设备层出不穷,这些系统和智能设备构成了智能养老服务生态链。随着智能养老服务生态链的复杂度不断提升,养老产品也不断复杂化,传统的产品管理方式已经很难满足实际需求。以泰康推出的养老产品为例,当前的泰康产品均是由员工手动打标签(即Tag,用于表示产品的版本号),并且在产品上线时由员工手动选择产品的版本进行上线,由于需要手动选择标签进行上线,因此经常会出现发错产品的版本等问题。此外,在产品上线后出现问题时,需要依靠个人记忆来追溯产品的历史稳定版本,并且需要通过员工在代码仓库中进行一一比较来查询历史稳定版本,因此回退效率很低并且容易出错。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
为了克服上述现有技术中存在的问题,根据本发明的一个实施例,提供一种智能集成版本管理方法,除了养老产品之外,该方法也适用于管理其他的软件产品。所述方法包括:响应于接收到用户对项目的发布命令,确定所述项目的最新版本;在确定了所述项目的最新版本后,从Git服务器拉取所述项目的最新版本的代码,并且发布所述项目的最新版本到Web服务器;在发布了所述项目的最新版本后,在本地记录所述项目的最新版本对应的版本信息和状态信息;其中,版本信息用于确定对应版本与所述项目的其他版本的前后关系,状态信息用于指示对应版本是否是稳定版本;以及,响应于接收到用户对所述项目的回退命令,基于本地记录的版本信息和状态信息确定所述项目的回退版本,并且根据所述项目的回退版本进行回退操作。
上述方法中,在本地记录所述项目的最新版本对应的状态信息包括:将所述项目的最新版本的状态信息设置为指示稳定,并且在本地保存;响应于接收到用户对所述项目的回退命令,将所述项目的最新版本的状态信息设置为指示失败并且在本地保存。
上述方法中,基于本地记录的版本信息和状态信息确定所述项目的回退版本包括:基于本地记录的状态信息,获取所述项目的所有稳定版本;基于本地记录的版本信息,在所述项目的所有稳定版本中选取所述项目的最新版本之前并且距离所述项目的最新版本最近的稳定版本,作为所述项目的回退版本。
上述方法中,用户对所述项目的回退命令中包括版本信息;以及,基于本地记录的版本信息和状态信息确定所述项目的回退版本包括:确定本地记录的所述项目的所有版本的版本信息中是否包括所述回退命令中的版本信息;响应于确定本地记录的所述项目的所有版本的版本信息中包括所述回退命令中的版本信息,获取本地记录的所述回退命令中的版本信息所对应的版本的状态信息,若所获取的状态信息指示所述回退命令中的版本信息所对应的版本是稳定版本,则将所述回退命令中的版本信息所对应的版本作为所述项目的回退版本。
上述方法中,响应于接收到用户对项目的发布命令,确定所述项目的最新版本包括:从所述Git服务器获取所述项目的最后创建版本的版本信息;确定本地记录的所述项目的所有版本的版本信息中是否包括所述最后创建版本的版本信息,若不包括,则将所述最后创建版本作为所述项目的最新版本。
上述方法中,用户对项目的发布命令中包括版本信息;以及,响应于接收到用户对项目的发布命令,确定所述项目的最新版本包括:确定本地记录的所述项目的所有版本的版本信息中是否包括所述发布命令中的版本信息;响应于确定本地记录的所述项目的所有版本的版本信息中不包括所述发布命令中的版本信息,查找所述Git中是否存在所述发布命令中的版本信息所对应的版本,若存在,则将所述发布命令中的版本信息所对应的版本作为所述项目的最新版本。
上述方法还可以包括:从文件服务器获取移动端应用的最新版本的下载地址;将移动端应用的最新版本的下载地址发送至移动设备。
根据本发明的一个实施例,还提供一种智能集成版本管理装置,包括:
版本确定模块,用于响应于接收到用户对项目的发布命令,确定所述项目的最新版本;
发布模块,用于在确定了所述项目的最新版本后,从Git服务器拉取所述项目的最新版本的代码,并且发布所述项目的最新版本到Web服务器;
记录模块,用于在发布了所述项目的最新版本后,在本地记录所述项目的最新版本对应的版本信息和状态信息;其中,版本信息用于确定对应版本与所述项目的其他版本的前后关系,状态信息用于指示对应版本是否是稳定版本;
回退模块,用于响应于接收到用户对所述项目的回退命令,基于本地记录的版本信息和状态信息确定所述项目的回退版本,并且根据所述项目的回退版本进行回退操作。
根据本发明的一个实施例,还提供一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的智能集成版本管理方法。
根据本发明的一个实施例,还提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述电子设备实现如上述实施例中所述的智能集成版本管理方法。
本发明实施例提供的技术方案可以包括以下有益效果:
本发明实施例利用了项目在Git服务器中的版本标识以及状态信息来执行项目的最新版本以及回退版本的确定,无需用户手动设置和选择版本号,就能够实现对项目的最新版本的自动发布和回退,解决了人为设置、选择版本号时出错率高的问题,提高了版本发布及回退的效率以及版本管理的可靠性。用户无需记忆项目的历史版本号,减轻了用户的负担,并且可以一键实现项目的发布和回退,方便了用户操作、节省了人力维护成本同时降低了用户的门槛。另外,用户仍可以通过提供版本标识来指定其期望发布的版本或者期望回退到的版本,提高了版本管理的灵活性。由于存储了项目的所有已发布版本的版本标识和状态信息(既包括发布成功的版本也包括发布失败的版本),使得项目开发过程中文件、目录的发展过程可追踪,为项目开发人员提供了便利。本发明实施例实际上提供了一种集约化的版本管理方案,除了提供对Web项目的自动发布和回退还提供对移动端应用的版本管理。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性地示出了根据本发明一个实施例的智能集成版本管理方法的流程图;
图2示意性地示出了根据本发明一个实施例的包括智能集成版本管理设备的版本管理系统的架构图;
图3示意性地示出了根据本发明一个实施例的智能集成版本管理设备的本地数据库的表结构示意图;
图4示意性地示出了根据本发明一个实施例的智能集成版本管理装置的框图;
图5示意性地示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
根据本发明的一个实施例,提供一种智能集成版本管理方法。
图1示意性地示出了根据本发明一个实施例的智能集成版本管理方法的流程图,包括步骤S11-S15。该智能集成版本管理方法的执行主体可以是具有计算和存储功能的服务器或者终端,例如,该智能集成版本管理方法可以由诸如智能集成版本管理设备的电子设备执行。如图2所示,智能集成版本管理设备可与Git(分布式版本控制系统)服务器、文件服务器以及Web服务器连接,并且提供交互接口(图2未示出)与用户进行交互。
下面结合图1-2描述该智能集成版本管理方法的各个步骤:
步骤S11.响应于接收到用户对项目的发布命令,确定项目的最新版本。
用户可以经由交互接口向智能集成版本管理设备发送关于项目(如Web项目)的最新版本的发布命令。用户可以指定期望发布的版本,例如可以在发布命令中包括项目信息(如项目名称或项目标识)以及期望发布的版本在Git服务器中的版本标识(如git版本id,后文简称为版本标识);用户也可以不指定版本,例如仅通过在其终端(如PC终端或移动设备终端)点击与项目发布相关的按键来发送关于项目的最新版本的发布命令,其中不同的项目对应有不同的按键。
智能集成版本管理设备在接收到用户对项目的发布命令之后,确定该项目的最新版本,该过程包括如下子步骤:
步骤S111.由智能集成版本管理设备对接收到的发布命令进行解析,若解析得到版本标识和项目信息,则执行步骤S112;若解析得到项目信息但没有解析到版本标识,则执行步骤S113。
步骤S112.由智能集成版本管理设备确定发布命令中的版本标识所对应的版本是否是项目的最新版本。
智能集成版本管理设备包括一个本地数据库,图3示出了根据本发明一个实施例的智能集成版本管理设备的本地数据库的表结构,如图3所示,该数据库中存储有项目的所有已发布版本对应的版本标识(如上所述,git版本id)和状态信息;其中,版本标识是Git服务器为项目的每个版本分配的唯一标识,通常而言,Git服务器中的项目的后创建版本的版本标识要大于先前创建版本的版本标识,即版本标识能够用来确定版本之间的前后关系;状态信息可以由0或1来表示,其中1表示该状态信息所对应的版本是稳定版本,0表示该状态信息所对应的版本是失败版本(即非稳定版本)。通过查询智能集成版本管理设备的本地数据库,可以获得项目的所有已发布版本的版本标识,并且获知项目的所有已发布版本是否是稳定版本。
在解析得到版本标识后,智能集成版本管理设备查询本地数据库,确定本地数据库中存储的项目(项目可以根据项目信息来确定)的所有版本(即该项目的所有已发布版本)的版本标识中是否包括发布命令中的版本标识。
如果本地数据库中存储的该项目的所有版本的版本标识不包括发布命令中的版本标识,即发布命令中的版本标识所对应的版本未被发布过,则智能集成版本管理设备进一步查询Git服务器中是否存在发布命令中的版本标识所对应的版本;若存在,则将发布命令中的版本标识所对应的版本确定为项目的最新版本;若不存在,则表示用户有可能输入了一个错误的版本标识,智能集成版本管理设备可以经由交互接口向用户反馈指示版本标识错误的消息,用户随后可以重新发送发布命令。其中,智能集成版本管理设备的本地数据库中已预先配置好项目在Git服务器中的路径,如图3中所示的项目git路径,智能集成版本管理设备可以经由该路径查询Git服务器中是否存在发布命令中的版本标识所对应的版本。
如果本地数据库中存储的该项目的所有版本的版本标识包括发布命令中的版本标识,即发布命令中的版本标识所对应的版本已被发布过,则智能集成版本管理设备可以经由交互接口向用户反馈指示版本已发布的消息,用户随后可以重新发送发布命令。
在步骤S112执行完毕后,跳过步骤S113。
步骤S113.由智能集成版本管理设备根据项目信息获取项目的最后创建版本,并且确定最后创建版本是否是项目的最新版本。
其中,智能集成版本管理设备根据项目在Git服务器中的路径获取该项目的最后创建版本的版本标识(举例而言,可以利用版本标识来判断该项目的哪个版本为最后创建版本,通常来说,最大的版本标识所对应的版本为最后创建版本)。随后,智能集成版本管理设备查询本地数据库,判断本地数据库中存储的该项目的所有版本的版本标识中是否包括最后创建版本的版本标识;若不包括,即该项目的最后创建版本未被发布过,则将该最后创建版本确定为项目的最新版本,若包括,则智能集成版本管理设备可以经由交互接口向用户反馈指示该项目没有最新版本的消息。
步骤S12.在确定了项目的最新版本后,从Git服务器拉取项目的最新版本的代码,并且发布项目的最新版本到Web服务器。
智能集成版本管理设备在确定了项目的最新版本后,即确定了发布命令中的版本标识所对应的版本是项目的最新版本或者确定了项目在Git服务器中的最后创建版本是该项目的最新版本后,从Git服务器中拉取该最新版本的代码。根据本发明的一个实施例,智能集成版本管理设备可以使用jGit(jGit是用于操作Git的纯Java库)来获取项目的最新版本的代码,表1示出了智能集成版本管理设备可能用到的核心对象:
表1
智能集成版本管理设备在拉取项目的最新版本的代码后将该项目的最新版本发布到Web服务器。其中,智能集成版本管理设备可以通过CodePipeline流水线来实现项目的自动发布。
步骤S13.在发布了项目的最新版本后,在本地记录项目的最新版本对应的版本信息和状态信息。
具体地,智能集成版本管理设备在发布了项目的最新版本后,在本地数据库中添加该最新版本对应的版本标识,以及该最新版本对应的状态信息。状态信息用于指示所对应的版本是否是稳定版本,如上文所述,状态信息可以由0或1来表示,其中1表示该状态信息所对应的版本是稳定版本,0表示该状态信息所对应的版本是失败版本。根据本发明的一个实施例,如果项目的最新版本发布成功,则智能集成版本管理设备将项目的最新版本对应的状态信息设置为1并且存储在本地数据库中;如果项目的最新版本发布失败,则智能集成版本管理设备将项目的最新版本对应的状态信息设置为0并且存储在本地数据库中。以一个具体例子来说明,在项目的最新版本发布后,由智能集成版本管理设备将该项目的最新版本对应的状态信息设置为1并存储在本地数据库中,其中状态为1(即指示对应的最新版本是稳定版本)是状态信息的默认值;一旦智能集成版本管理设备接收到用户对该项目的回退命令,就将该项目的最新版本的状态信息更新为0,即指示对应的最新版本是失败版本,需要回退。
步骤S14.响应于接收到用户对项目的回退命令,基于本地记录的版本信息和状态信息确定项目的回退版本,并且根据项目的回退版本进行回退操作。
项目的最新版本发布后,可能会出现各种问题而导致需要进行回退操作。用户(如运维人员或者其他员工)可以经由交互接口向智能集成版本管理设备发送针对该项目的回退命令。用户可以指定期望回退到的版本,例如可以在回退命令中包括项目信息(如项目标识或项目名称)以及期望回退到的版本的版本标识;用户也可以不指定版本,例如仅通过在其终端(如PC终端或移动设备终端)点击与项目回退相关的按键来发送针对项目的回退命令,其中,不同的项目对应有不同的按键。
智能集成版本管理设备在接收到用户对项目的回退命令之后,确定项目的回退版本,该过程包括如下子步骤:
步骤S141.由智能集成版本管理设备对接收到的回退命令进行解析,若解析得到版本标识和项目信息,则执行步骤S142;若解析得到项目信息但没有解析到版本标识,则执行步骤S143。
步骤S142.由智能集成版本管理设备确定回退命令中的版本标识所对应的版本是否是项目的回退版本。
在解析得到版本标识后,智能集成版本管理设备查询本地数据库,确定本地数据库中存储的项目(项目可以根据项目信息来确定)的所有版本(即该项目的所有已发布版本)的版本标识中是否包括回退命令中的版本标识。
如果本地数据库中存储的该项目的所有版本的版本标识包括回退命令中的版本标识,即回退命令中的版本标识所对应的版本被发布过,则智能集成版本管理设备进一步获取本地数据库中存储的回退命令中的版本标识所对应的版本的状态信息;若所获取的状态信息为1,即指示回退命令中的版本标识所对应的版本是稳定版本,则将回退命令中的版本标识所对应的版本确定为项目的回退版本;若所获取的状态信息为0,则表示用户输入了一个失败版本(不稳定版本)的版本标识,智能集成版本管理设备可以经由交互接口向用户反馈指示回退版本不稳定的消息,用户随后可以重新发送回退命令。
如果本地数据库中存储的该项目的所有版本的版本标识不包括发布命令中的版本标识,则表示用户可能输入了一个错误的版本标识,智能集成版本管理设备可以经由交互接口向用户反馈指示版本标识错误的消息,用户随后可以重新发送回退命令。
在步骤S142执行完毕后,跳过步骤S143。
步骤S143.由智能集成版本管理设备根据项目信息、本地记录的版本标识和状态信息确定项目的回退版本。
具体地,智能集成版本管理设备基于本地数据库中存储的状态信息,根据项目信息从本地数据库中获取该项目的所有版本中状态信息为1的版本对应的版本标识,即获取该项目的所有稳定版本。智能集成版本管理设备基于本地数据库中存储的版本标识,在该项目的所有稳定版本中选取版本标识小于该项目的最新版本的版本标识并且与最新版本的版本标识距离最近的稳定版本(即,在该项目的最新版本之前并且距离最新版本最近的稳定版本),作为项目的回退版本。
在确定了项目的回退版本之后,卸载该项目的最新版本,并且从Git服务器拉取项目的回退版本的代码以发布到Web服务器。
步骤S15.从文件服务器获取移动端应用的最新版本的下载地址,并且将移动端应用的最新版本的下载地址发送至移动设备。
除了发布web项目,根据本发明的一个实施例,智能集成版本管理设备还可以对移动端应用的版本进行管理。具体地,智能集成版本管理设备可以从文件服务器中获取移动端应用的最新版本的下载地址并且存储在本地数据库中,其中存储移动端应用的最新版本的版本标识以及对应的下载地址。智能集成版本管理设备还可以向移动端设备推送移动端应用的最新版本的下载地址,移动端设备可以根据该下载地址下载移动应用的安装包/升级包,以完成移动应用的安装或升级。
在上述实施例中,利用了项目在Git服务器中的版本标识以及状态信息来执行项目的最新版本以及回退版本的确定,无需用户手动设置和选择版本号,就能够实现对项目的最新版本的自动发布和回退,解决了人为设置、选择版本号时出错率高的问题,提高了版本发布及回退的效率以及版本管理的可靠性。用户无需记忆项目的历史版本号,减轻了用户的负担,并且可以一键实现项目的发布和回退,方便了用户操作、节省了人力维护成本同时降低了用户的门槛。另外,用户仍可以通过提供版本标识来指定其期望发布的版本或者期望回退到的版本,提高了版本管理的灵活性。由于存储了项目的所有已发布版本的版本标识和状态信息(既包括发布成功的版本也包括发布失败的版本),使得项目开发过程中文件、目录的发展过程可追踪,为项目开发人员提供了便利。上述实施例实际上提供了一种集约化的版本管理方案,除了提供对Web项目的自动发布和回退还提供对移动端应用的版本管理。
在上述实施例中,利用Git服务器中的版本标识来确定项目的版本之间的前后关系,其中项目的后创建版本的版本标识要大于先前创建版本的版本标识。在另一个实施例中,智能集成版本管理设备可以为已发布版本生成并存储版本号,利用该版本号确定项目的版本之间的前后关系。在其他实施例中,智能集成版本管理设备可以为已发布版本记录部署时间,利用该部署时间确定项目的版本之间的前后关系。
以下结合附图介绍本发明的装置实施例。
图4示意性地示出了根据本发明的实施例的智能集成版本管理装置的框图。
参照图4所示,根据本发明实施例的智能集成版本管理装置400包括:版本确定模块401、发布模块402、记录模块403以及回退模块404。
版本确定模块401用于响应于接收到用户对项目的发布命令,确定项目的最新版本。其中,在用户对项目的发布命令中不包括版本信息的情况下,版本确定模块401从Git服务器获取项目的最后创建版本的版本信息;确定本地记录的项目的所有版本的版本信息中是否包括最后创建版本的版本信息,若不包括,则将最后创建版本作为项目的最新版本。在用户对项目的发布命令中包括版本信息的情况下,版本确定模块401确定本地记录的项目的所有版本的版本信息中是否包括发布命令中的版本信息;响应于确定本地记录的项目的所有版本的版本信息中不包括发布命令中的版本信息,查找Git服务器中是否存在发布命令中的版本信息所对应的版本,若存在,则将发布命令中的版本信息所对应的版本作为项目的最新版本。
发布模块402用于在确定了项目的最新版本后,从Git服务器拉取项目的最新版本的代码,并且发布项目的最新版本到Web服务器。在一个实施例中,发布模块402还用于从文件服务器获取移动端应用的最新版本的下载地址;并且将移动端应用的最新版本的下载地址发送至移动设备。
记录模块403用于在发布了项目的最新版本后,在本地记录项目的最新版本对应的版本信息和状态信息;其中,版本信息用于确定对应版本与项目的其他版本的前后关系,状态信息用于指示对应版本是否是稳定版本。具体地,记录模块403用于将项目的最新版本的状态信息设置为指示稳定,并且在本地保存;并且响应于接收到用户对项目的回退命令,将项目的最新版本的状态信息设置为指示失败并且在本地保存。
回退模块404用于响应于接收到用户对项目的回退命令,基于本地记录的版本信息和状态信息确定项目的回退版本,并且根据项目的回退版本进行回退操作。其中,在用户对项目的回退命令中不包括版本信息的情况下,回退模块404基于本地记录的状态信息,获取项目的所有稳定版本;基于本地记录的版本信息,在项目的所有稳定版本中选取项目的最新版本之前并且距离项目的最新版本最近的稳定版本,作为项目的回退版本。在用户对项目的回退命令中包括版本信息的情况下,回退模块404确定本地记录的项目的所有版本的版本信息中是否包括回退命令中的版本信息;响应于确定本地记录的项目的所有版本的版本信息中包括回退命令中的版本信息,获取本地记录的回退命令中的版本信息所对应的版本的状态信息,若所获取的状态信息指示回退命令中的版本信息所对应的版本是稳定版本,则将回退命令中的版本信息所对应的版本作为项目的回退版本。
由于本发明的示例实施例的智能集成版本管理设备的各个功能模块与上述智能集成版本管理方法的示例实施例的步骤对应,因此对于本发明装置实施例中未披露的细节,请参照本发明上述的智能集成版本管理方法的实施例。
下面参考图5,其示出了适于用来实现本发明实施例的电子设备的计算机系统500的结构示意图。图5示出的电子设备的计算机系统500仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统操作所需的各种程序和数据。CPU501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的智能集成版本管理方法。
例如,所述的电子设备可以实现如图1中所示的:步骤S11.响应于接收到用户对项目的发布命令,确定项目的最新版本;步骤S12.在确定了项目的最新版本后,从Git服务器拉取项目的最新版本的代码,并且发布项目的最新版本到Web服务器;步骤S13.在发布了项目的最新版本后,在本地记录项目的最新版本对应的版本信息和状态信息;步骤S14.响应于接收到用户对项目的回退命令,基于本地记录的版本信息和状态信息确定项目的回退版本,并且根据项目的回退版本进行回退操作;步骤S15.从文件服务器获取移动端应用的最新版本的下载地址,并且将移动端应用的最新版本的下载地址发送至移动设备。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (8)
1.一种智能集成版本管理方法,其特征在于,包括:
响应于接收到用户对项目的发布命令,确定所述项目的最新版本;
在确定了所述项目的最新版本后,从Git服务器拉取所述项目的最新版本的代码,并且发布所述项目的最新版本到Web服务器;
在发布了所述项目的最新版本后,在本地记录所述项目的最新版本对应的版本信息和状态信息,版本信息用于确定对应版本与所述项目的其他版本的前后关系,状态信息用于指示对应版本是否是稳定版本,其中,在本地记录有所述项目的所有已发布版本对应的版本信息和状态信息,并且在本地记录所述项目的最新版本对应的状态信息包括:将所述项目的最新版本的状态信息设置为指示稳定,并且在本地保存;响应于接收到用户对所述项目的回退命令,将所述项目的最新版本的状态信息设置为指示失败并且在本地保存;
响应于接收到用户对所述项目的回退命令,基于本地记录的版本信息和状态信息确定所述项目的回退版本,包括基于本地记录的版本信息,在所述项目的所有稳定版本中选取所述项目的最新版本之前并且距离所述项目的最新版本最近的稳定版本,作为所述项目的回退版本,根据所述项目的回退版本进行回退操作。
2.根据权利要求1所述的方法,其特征在于,用户对所述项目的回退命令中包括版本信息,以及基于本地记录的版本信息和状态信息确定所述项目的回退版本包括:
确定本地记录的所述项目的所有版本的版本信息中是否包括所述回退命令中的版本信息;
响应于确定本地记录的所述项目的所有版本的版本信息中包括所述回退命令中的版本信息,获取本地记录的所述回退命令中的版本信息所对应的版本的状态信息,若所获取的状态信息指示所述回退命令中的版本信息所对应的版本是稳定版本,则将所述回退命令中的版本信息所对应的版本作为所述项目的回退版本。
3.根据权利要求1或2所述的方法,其特征在于,响应于接收到用户对项目的发布命令,确定所述项目的最新版本包括:
从所述Git服务器获取所述项目的最后创建版本的版本信息;
确定本地记录的所述项目的所有版本的版本信息中是否包括所述最后创建版本的版本信息,若不包括,则将所述最后创建版本作为所述项目的最新版本。
4.根据权利要求1或2所述的方法,其特征在于,用户对项目的发布命令中包括版本信息,以及,响应于接收到用户对项目的发布命令,确定所述项目的最新版本包括:
确定本地记录的所述项目的所有版本的版本信息中是否包括所述发布命令中的版本信息;
响应于确定本地记录的所述项目的所有版本的版本信息中不包括所述发布命令中的版本信息,查找所述Git中是否存在所述发布命令中的版本信息所对应的版本,若存在,则将所述发布命令中的版本信息所对应的版本作为所述项目的最新版本。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
从文件服务器获取移动端应用的最新版本的下载地址;
将移动端应用的最新版本的下载地址发送至移动设备。
6.一种智能集成版本管理装置,其特征在于,包括:
版本确定模块,用于响应于接收到用户对项目的发布命令,确定所述项目的最新版本;
发布模块,用于在确定了所述项目的最新版本后,从Git服务器拉取所述项目的最新版本的代码,并且发布所述项目的最新版本到Web服务器;
记录模块,用于在发布了所述项目的最新版本后,在本地记录所述项目的最新版本对应的版本信息和状态信息,版本信息用于确定对应版本与所述项目的其他版本的前后关系,状态信息用于指示对应版本是否是稳定版本,其中,在本地记录有所述项目的所有已发布版本对应的版本信息和状态信息,并且在本地记录所述项目的最新版本对应的状态信息包括:将所述项目的最新版本的状态信息设置为指示稳定,并且在本地保存;响应于接收到用户对所述项目的回退命令,将所述项目的最新版本的状态信息设置为指示失败并且在本地保存;
回退模块,用于响应于接收到用户对所述项目的回退命令,基于本地记录的版本信息和状态信息确定所述项目的回退版本,包括基于本地记录的版本信息,在所述项目的所有稳定版本中选取所述项目的最新版本之前并且距离所述项目的最新版本最近的稳定版本,作为所述项目的回退版本,根据所述项目的回退版本进行回退操作。
7.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的方法。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911130928.0A CN111104125B (zh) | 2019-11-19 | 2019-11-19 | 智能集成版本管理方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911130928.0A CN111104125B (zh) | 2019-11-19 | 2019-11-19 | 智能集成版本管理方法、装置、介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111104125A CN111104125A (zh) | 2020-05-05 |
CN111104125B true CN111104125B (zh) | 2023-09-08 |
Family
ID=70420603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911130928.0A Active CN111104125B (zh) | 2019-11-19 | 2019-11-19 | 智能集成版本管理方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111104125B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190248A (zh) * | 2021-04-28 | 2021-07-30 | 绿盟科技集团股份有限公司 | 一种基于虚拟化的web系统升级测试方法和服务器 |
CN117270943B (zh) * | 2023-09-15 | 2024-07-19 | 上海子虔科技有限公司 | 一种基于元数据的云端应用文件版本管理系统 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8341590B1 (en) * | 2007-12-12 | 2012-12-25 | Accurev, Inc. | System for relating workflow status to code component status in a software project |
WO2014027479A1 (ja) * | 2012-08-13 | 2014-02-20 | 日本電気株式会社 | 管理システム及びそれに用いられる管理装置、並びに管理方法及び管理プログラム |
CN103761612A (zh) * | 2014-01-09 | 2014-04-30 | 北京奇虎科技有限公司 | 项目发布方法及系统 |
US9372686B1 (en) * | 2014-12-24 | 2016-06-21 | Google Inc. | Maintaining package repositories |
CN105897863A (zh) * | 2016-03-28 | 2016-08-24 | 努比亚技术有限公司 | 移动终端版本升级回退方法及装置 |
CN106445488A (zh) * | 2016-07-01 | 2017-02-22 | 厦门易名科技股份有限公司 | 一种代码发布及回退的方法 |
CN106547584A (zh) * | 2015-09-23 | 2017-03-29 | 中国移动通信集团浙江有限公司 | 一种应用程序的回退方法及装置 |
CN107015842A (zh) * | 2017-03-31 | 2017-08-04 | 武汉票据交易中心有限公司 | 一种服务器端程序编译和发布的管理方法及系统 |
CN107506194A (zh) * | 2017-08-24 | 2017-12-22 | 北京百悟科技有限公司 | 应用版本回退确定方法及装置 |
CN107548085A (zh) * | 2016-06-24 | 2018-01-05 | 中兴通讯股份有限公司 | 基站版本回退方法及系统 |
CN108196878A (zh) * | 2018-01-22 | 2018-06-22 | 广东小天才科技有限公司 | 应用程序安装包的生成方法、装置、电子设备及存储介质 |
CN109144524A (zh) * | 2018-07-25 | 2019-01-04 | 深圳点猫科技有限公司 | 一种教育平台上学科游戏的版本发布方法及电子设备 |
CN110389773A (zh) * | 2018-04-23 | 2019-10-29 | 比亚迪股份有限公司 | 软件发布及部署方法、装置及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020073110A1 (en) * | 2000-12-12 | 2002-06-13 | Edouard Duvillier | Version collection technique implemented on an intrinsic versioning information storage and retrieval system |
US9535688B2 (en) * | 2014-07-23 | 2017-01-03 | Verizon Patent And Licensing Inc. | Efficient deployment of application revisions and implementation of application rollbacks across multiple application servers |
US10503496B2 (en) * | 2018-02-02 | 2019-12-10 | Bank Of America Corporation | Smart tool for enterprise-wide version control of codes during software integration and deployment |
-
2019
- 2019-11-19 CN CN201911130928.0A patent/CN111104125B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8341590B1 (en) * | 2007-12-12 | 2012-12-25 | Accurev, Inc. | System for relating workflow status to code component status in a software project |
WO2014027479A1 (ja) * | 2012-08-13 | 2014-02-20 | 日本電気株式会社 | 管理システム及びそれに用いられる管理装置、並びに管理方法及び管理プログラム |
CN103761612A (zh) * | 2014-01-09 | 2014-04-30 | 北京奇虎科技有限公司 | 项目发布方法及系统 |
US9372686B1 (en) * | 2014-12-24 | 2016-06-21 | Google Inc. | Maintaining package repositories |
CN106547584A (zh) * | 2015-09-23 | 2017-03-29 | 中国移动通信集团浙江有限公司 | 一种应用程序的回退方法及装置 |
CN105897863A (zh) * | 2016-03-28 | 2016-08-24 | 努比亚技术有限公司 | 移动终端版本升级回退方法及装置 |
CN107548085A (zh) * | 2016-06-24 | 2018-01-05 | 中兴通讯股份有限公司 | 基站版本回退方法及系统 |
CN106445488A (zh) * | 2016-07-01 | 2017-02-22 | 厦门易名科技股份有限公司 | 一种代码发布及回退的方法 |
CN107015842A (zh) * | 2017-03-31 | 2017-08-04 | 武汉票据交易中心有限公司 | 一种服务器端程序编译和发布的管理方法及系统 |
CN107506194A (zh) * | 2017-08-24 | 2017-12-22 | 北京百悟科技有限公司 | 应用版本回退确定方法及装置 |
CN108196878A (zh) * | 2018-01-22 | 2018-06-22 | 广东小天才科技有限公司 | 应用程序安装包的生成方法、装置、电子设备及存储介质 |
CN110389773A (zh) * | 2018-04-23 | 2019-10-29 | 比亚迪股份有限公司 | 软件发布及部署方法、装置及系统 |
CN109144524A (zh) * | 2018-07-25 | 2019-01-04 | 深圳点猫科技有限公司 | 一种教育平台上学科游戏的版本发布方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111104125A (zh) | 2020-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111339186B (zh) | 工作流引擎数据同步方法、装置、介质及电子设备 | |
CN108874558B (zh) | 分布式事务的消息订阅方法、电子装置及可读存储介质 | |
US8640096B2 (en) | Configuration of componentized software applications | |
CN111190888A (zh) | 一种管理图数据库集群的方法和装置 | |
CN102402559A (zh) | 一种数据库升级脚本的生成方法和装置 | |
CN104572069A (zh) | 对描述数据中心中的配置项之间的依赖关系的信息进行实时分布式管理的方法和系统 | |
CN111104125B (zh) | 智能集成版本管理方法、装置、介质及电子设备 | |
CN116048987A (zh) | 流程业务的处理方法、装置、电子设备、系统和存储介质 | |
CN113377342B (zh) | 一种项目构建方法、装置、电子设备及存储介质 | |
CN110716804A (zh) | 无用资源的自动删除方法、装置、存储介质及电子设备 | |
CN110109912B (zh) | 一种标识符生成方法和装置 | |
CN112596956B (zh) | 一种文件系统管理方法、装置及相关组件 | |
CN113821249A (zh) | 项目开发配置的方法、装置、电子设备和可读存储介质 | |
CN113014618A (zh) | 消息处理方法、系统和电子设备 | |
CN113742321B (zh) | 一种数据更新的方法和装置 | |
CN115982148A (zh) | 数据库表的处理方法、装置、电子设备和存储介质 | |
CN116737662A (zh) | 业务数据处理的方法、装置、电子设备和存储介质 | |
CN114189750A (zh) | 一种多格式文件的播放方法及相关装置 | |
CN113076343A (zh) | 数据查询方法、装置、设备及存储介质 | |
CN111104409A (zh) | 一种数据库处理方法、装置、存储介质及电子设备 | |
CN113779048A (zh) | 一种数据处理方法和装置 | |
CN113760600A (zh) | 一种数据库备份方法、数据库还原方法和相关装置 | |
CN113743842A (zh) | 一种多源数据差异告警方法和装置 | |
CN113760695A (zh) | 一种定位问题代码的方法和装置 | |
CN118444960B (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 |