CN112988193A - 代码更新识别方法、装置、计算机设备及可读存储介质 - Google Patents

代码更新识别方法、装置、计算机设备及可读存储介质 Download PDF

Info

Publication number
CN112988193A
CN112988193A CN202110323332.3A CN202110323332A CN112988193A CN 112988193 A CN112988193 A CN 112988193A CN 202110323332 A CN202110323332 A CN 202110323332A CN 112988193 A CN112988193 A CN 112988193A
Authority
CN
China
Prior art keywords
code
package
library
information
log
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
Application number
CN202110323332.3A
Other languages
English (en)
Other versions
CN112988193B (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.)
Shenzhen One Account Technology Co ltd
Original Assignee
Shenzhen One Account 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 Shenzhen One Account Technology Co ltd filed Critical Shenzhen One Account Technology Co ltd
Priority to CN202110323332.3A priority Critical patent/CN112988193B/zh
Publication of CN112988193A publication Critical patent/CN112988193A/zh
Application granted granted Critical
Publication of CN112988193B publication Critical patent/CN112988193B/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/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal 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

代码更新识别方法、装置、计算机设备及可读存储介质
技术领域
本发明涉及计算机运维技术领域,尤其涉及一种代码更新识别方法、装置、计算机设备及可读存储介质。
背景技术
目前,市面上各种镜像库层出不穷,包括npm,maven等,用户可在镜像库上搜索安装包以查看该安装包的内容说明,并将所述安装包安装到自己的项目或产品上进行使用;
但是,发明人发现,一旦镜像库中的安装包(即:在所述项目或产品上使用的数据包)出现版本升级时,其升级的内容往往是以代码的形式记录在安装包之中,导致用户端的使用者难以获悉该安装包的升级详情,从而无法判断是否需要进行版本升级,影响用户的使用便利度。
发明内容
本发明的目的是提供一种代码更新识别方法、装置、计算机设备及可读存储介质,用于解决现有技术存在的因升级的内容往往是以代码的形式记录在安装包之中,导致用户端的使用者难以获悉该安装包的升级详情的问题。
为实现上述目的,本发明提供一种代码更新识别方法,包括:
监听到代码库接收到安装包时,从所述代码库中提取所述安装包,其中,所述安装包是用于对产品进行升级的数据包;
从所述代码库中提取与所述安装包对应的对照包,识别所述安装包与所述对照包之间的差异得到至少具有一条代码日志的差异信息;
获取所述差异信息中代码日志的类型,并根据所述类型在所述代码日志中***标签信息得到详情信息,汇总所述差异信息中所有代码日志的详情信息,并将汇总后的所述详情信息载入所述安装包中得到版本更新包,将所述版本更新包保存至所述代码库;
监听到镜像库接收到所述代码库发送的版本更新包时,从所述镜像库中提取所述版本更新包;
按照所述类型对所述详情信息进行分类,得到至少一个记载同一所述类型的详情信息的解析表,将所述版本更新包及所述解析表发送至用户端。
上述方案中,所述从所述代码库中提取与所述安装包对应的对照包之前,所述方法还包括:
判断所述安装包中是否具有详情信息;
若是,则将所述安装包设为版本更新包,并将所述版本更新包保存至所述代码库。
上述方案中,所述从所述代码库中提取与所述安装包对应的对照包,解析所述安装包与所述对照包之间的差异,得到至少具有一条代码日志的差异信息的步骤,包括:
提取所述安装包的产品名称,从所述代码库中识别与所述产品名称一致的数据包;
将所述安装包的版本号设为当前版本号,及将所述数据包的的版本号设为历史版本号,将位于所述当前版本号上一顺位的历史版本号设为对照版本号,及将所述历史版本号对应的数据包设为对照包;
从所述代码库中获取所述安装包的至少具有一条代码日志的第一日志集,及从所述代码库中获取所述对照包的代码日志并汇总形成第二日志集;
对所述第一日志集和所述第二日志集进行异或运算,以识别所述第一日志集和所述第二日志集之间具有差异的代码日志,并将所述具有差异的代码日志设为差异信息。
上述方案中,所述汇总所述差异信息中所有代码日志的详情信息,并将汇总后的所述详情信息载入所述安装包中得到版本更新包,包括:
汇总所述差异信息中所有代码日志的详情信息,形成以数组结构的形式保存的详情信息,并将该详情信息载入所述安装包中。
上述方案中,所述获取所述差异信息中代码日志的类型,并根据所述类型在所述代码日志中***标签信息得到详情信息,
包括:
获取正则表达式,其中,所述正则表达式中记录了代码日志的类型的关键字;
将所述正则表达式与所述差异信息中的内容进行正则匹配得到所述代码日志的类型;
将与所述类型对应的标签信息***所述代码日志中,并将所述代码日志转为json格式得到详情信息。
上述方案中,所述监听到镜像库接收到所述代码库发送的版本更新包时,从所述镜像库中提取所述版本更新包的步骤,包括:
通过npm publish方法控制所述代码库发布版本更新包,使所述镜像库接收到所述版本更新包,通过AOP组件监听所述镜像库是否接收到所述代码库发布的版本更新包,若是,则拦截并提取所述镜像库的版本更新包。
上述方案中,所述按照所述类型对所述详情信息进行分类之前,所述方法还包括:
判断所述版本更新包中是否具有详情信息;
若否,则生成提示信息,将所述版本更新包及所述提示信息发送至用户端;
所述将所述版本更新包及所述解析表发送至用户端之后,所述方法还包括:
将所述版本更新包及所述解析表上传至区块链中。
为实现上述目的,本发明还提供一种代码更新识别装置,运行在代码库和镜像库中,包括:
安装包提取模块,用于在监听到代码库接收到安装包时,从所述代码库中提取所述安装包,其中,所述安装包是用于对产品进行升级的数据包;
差异识别模块,用于从所述代码库中提取与所述安装包对应的对照包,识别所述安装包与所述对照包之间的差异得到至少具有一条代码日志的差异信息;
版本更新模块,用于获取所述差异信息中代码日志的类型,并根据所述类型在所述代码日志中***标签信息得到详情信息,汇总所述差异信息中所有代码日志的详情信息,并将汇总后的所述详情信息载入所述安装包中得到版本更新包,将所述版本更新包保存至所述代码库;
镜像提取模块,用于在监听到镜像库接收到所述代码库发送的版本更新包时,从所述镜像库中提取所述版本更新包;
更新解析模块,用于按照所述类型对所述详情信息进行分类,得到至少一个记载同一所述类型的详情信息的解析表,将所述版本更新包及所述解析表发送至用户端。
为实现上述目的,本发明还提供一种计算机设备,其包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述计算机设备的处理器执行所述计算机程序时实现上述代码更新识别方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,所述可读存储介质上存储有计算机程序,所述可读存储介质存储的所述计算机程序被处理器执行时实现上述代码更新识别方法的步骤。
本发明提供的代码更新识别方法、装置、计算机设备及可读存储介质,通过从所述代码库中提取与所述安装包对应的对照包,识别所述安装包与所述对照包之间的差异得到差异信息,并在所述代码日志中***标签信息得到详情信息之后,将所述详情信息构建成解析表,以便于用户端的使用者快速直观的获取版本更新包的升级详情,及便于判断是否使用该版本更新包对其中的产品进行升级。
附图说明
图1为本发明代码更新识别方法实施例一的流程图;
图2为本发明代码更新识别方法实施例二中代码更新识别方法的环境应用示意图;
图3是本发明代码更新识别方法实施例二中代码更新识别方法的具体方法流程图;
图4为本发明代码更新识别装置实施例三的程序模块示意图;
图5为本发明计算机设备实施例四中计算机设备的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的代码更新识别方法、装置、计算机设备及可读存储介质,适用于计算机运维技术领域,为提供一种基于安装包提取模块、差异识别模块、版本更新模块、镜像提取模块、更新解析模块的代码更新识别方法。本发明通过从所述代码库中提取所述安装包,从所述代码库中提取与所述安装包对应的对照包,识别所述安装包与所述对照包之间的差异得到至少具有一条代码日志的差异信息。根据所述差异信息中代码日志的类型,在所述代码日志中***标签信息得到详情信息,汇总所述差异信息中所有代码日志的详情信息,并将汇总后的所述详情信息载入所述安装包中得到版本更新包,将所述版本更新包保存至所述代码库;从所述镜像库中提取所述版本更新包;按照所述类型对所述详情信息进行分类,得到至少一个记载同一所述类型的详情信息的解析表,将所述版本更新包及所述解析表发送至用户端。
实施例一:
请参阅图1,本实施例的一种代码更新识别方法,包括:
S101:监听到代码库接收到安装包时,从所述代码库中提取所述安装包,其中,所述安装包是用于对产品进行升级的数据包;
S103:从所述代码库中提取与所述安装包对应的对照包,识别所述安装包与所述对照包之间的差异得到至少具有一条代码日志的差异信息;
S105:根据所述差异信息中代码日志的类型,在所述代码日志中***标签信息得到详情信息,汇总所述差异信息中所有代码日志的详情信息,并将汇总后的所述详情信息载入所述安装包中得到版本更新包,将所述版本更新包保存至所述代码库;
S107:监听到镜像库接收到所述代码库发送的版本更新包时,从所述镜像库中提取所述版本更新包;
S109:按照所述类型对所述详情信息进行分类,得到至少一个记载同一所述类型的详情信息的解析表,将所述版本更新包及所述解析表发送至用户端。
在示例性的实施例中,通过将从所述代码库中提取所述安装包的操作设定在通过设定在代码库接收到安装包之时,即:开发端将其开发的安装包更新至所述代码库之时由于此时代码库并未发布所述安装包,故,此时有充足的算力和时间提取安装包并生成详情信息,实现错峰使用服务器算力,并保证及时生成安装包的详情信息的技术效果,进而降低对服务器的运算负担以及代码库的干扰。
根据代码日志的类型,在所述代码日志中***标签信息得到详情信息,汇总所述差异信息中所有代码日志的详情信息,并将汇总后的所述详情信息载入所述安装包中得到版本更新包的方式,对版本更新包相对于对照包的更新的内容及类型进行标识管理,以便于后续对代码日志进行分类。
通过AOP组件监听所述镜像库是否接收到所述代码库发布的版本更新包,若是,则拦截所述镜像库的版本更新包并提取。
通过按照类型对所述版本更新包中所有的详情信息进行分类,汇总类型一致的详情信息形成详情集,调用表格接口(如:excel接口)将所述详情集构建成解析表,以便于用户端的使用者快速直观的获取版本更新包的升级详情,以便于使用者判断是否使用该版本更新包对其中的产品进行升级。
实施例二:
本实施例为上述实施例一的一种具体应用场景,通过本实施例,能够更加清楚、具体地阐述本发明所提供的方法。
下面,以在运行有代码更新识别方法的服务器中,对安装包和对照包之间的差异进行识别并获得版本更新包,及在镜像库接收到版本更新包时生成解析表为例,来对本实施例提供的方法进行具体说明。需要说明的是,本实施例只是示例性的,并不限制本发明实施例所保护的范围。
图2示意性示出了根据本申请实施例二的代码更新识别方法的环境应用示意图。
在示例性的实施例中,代码更新识别方法所在的服务器2通过网络分别连接代码库3、镜像库4和用户端5;所述服务器2可以通过一个或多个网络提供服务,网络可以包括各种网络设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或等等。网络可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,它们的组合和/或类似物。网络可以包括无线链路,例如蜂窝链路,卫星链路,Wi-Fi链路和/或类似物;所述用户端5可为智能手机、平板电脑、笔记本电脑、台式电脑等计算机设备。
图3是本发明一个实施例提供的一种代码更新识别方法的具体方法流程图,该方法具体包括步骤S201至S210。
S201:监听到代码库接收到安装包时,从所述代码库中提取所述安装包,其中,所述安装包是用于对产品进行升级的数据包;
为降低对服务器的运算负担以及代码库的干扰,本步骤将从所述代码库中提取所述安装包的操作设定在通过设定在代码库接收到安装包之时,即:开发端将其开发的安装包更新至所述代码库之时由于此时代码库并未发布所述安装包,故,此时有充足的算力和时间提取安装包并生成详情信息,实现错峰使用服务器算力,并保证及时生成安装包的详情信息的技术效果。
于本实施例中,所述代码库是git***其为一种开源的分布式版本控制***,是对项目及产品的版本进行管理的开放源码的版本控制软件。
所述产品是根据用户需求所开发的,具有指定功能的应用软件(如:某APP,某功能组件等)。
于本实施例中,通过AOP组件监听所述代码库是否接收到开发端上传的安装包,若是,则拦截所述代码库的安装包并提取。
需要说明的是,AOP(Aspect Oriented Programming)组件为面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。
S202:判断所述安装包中是否具有详情信息。
本步骤中,通过预置的详情正则表达式搜索所述安装包中是否具有详情信息,所述详情正则表达式记载有详情信息的文件名称中的关键字。
S203:若否,从所述代码库中提取与所述安装包对应的对照包,识别所述安装包与所述对照包之间的差异得到至少具有一条代码日志的差异信息,执行S205。
本步骤中,所述代码日志用于对所述安装包和所述对照包中的代码进行描述,其包括:日志名称、代码作者、修改时间和代码描述,例如:
日志名称:commit de24f6c0c0d003ceccefb814b80ff2f5f94ea6bb
代码作者:Author:test<[email protected]>
修改时间:Date:Thu Aug 27 09:25:46 2020+0800
代码描述:优化滚动条样式
在一个优选的实施例中,所述从所述代码库中提取与所述安装包对应的对照包,解析所述安装包与所述对照包之间的差异,得到至少具有一条代码日志的差异信息的步骤,包括:
S31:提取所述安装包的产品名称,从所述代码库中识别与所述产品名称一致的数据包;
示例性地,所述安装包的产品名称为ABCD,那么,从代码库中识别名称为ABCD的数据包。
S32:
将所述安装包的版本号设为当前版本号,及将所述数据包的的版本号设为历史版本号,将位于所述当前版本号上一顺位的历史版本号设为对照版本号,及将所述历史版本号对应的数据包设为对照包;
示例性地,获得数据包A,其产品名称为ABCD,版本号为V2.0;数据包B,其产品名称为ABCD,版本号为V1.0;安装包的产品名称为ABCD,版本号为V3.0;因此,当前版本号为V3.0,位于所述当前版本号上一顺位的历史版本号为V2.0,故将所述数据包A设为对照包。
S33:从所述代码库中获取所述安装包的至少具有一条代码日志的第一日志集,及从所述代码库中获取所述对照包的代码日志并汇总形成第二日志集。
本步骤中通过git log命令从git***中获取安装包的代码日志并汇总形成第一日志集,从git***中获取对照包的代码日志并汇总形成第二日志集。
S34:对所述第一日志集和所述第二日志集进行异或运算,以识别所述第一日志集和所述第二日志集之间具有差异的代码日志,并将所述具有差异的代码日志设为差异信息。
本步骤采用异或函数^计算第一日志集和第二日志集之间差异,通过识别第一日志集和第二日志集之间具有差异的代码日志,以识别所述安装包与所述对照宝之间的差异,并汇总该差异所对应的代码日志得到至少具有一条代码日志的差异信息。
示例性地,通过对比安装包(版本号是V3.0)对应的第一日志集^对照包(V2.0)对应的第二日志集
获得的代码日志如下:
代码日志A:
commit de24f6c0c0d003ceccefb814b80ff2f5f94ea6bb
Author:test<[email protected]>
Date:Thu Aug 27 09:25:46 2020+0800
优化滚动条样式
代码日志B:
commit de25f6c0c0d003cdeedfb814b80ff2f5f94ea6bb
Author:test<[email protected]>
Date:Thu Aug 27 09:4531 2020+0800
新增帮助按键
可选的,本步骤可设置为仅将第一日志集中存在,且在第二日志集中不存在的代码日志设为差异信息。
需要说明的是,异或函数是运算两个对象之间差别的计算机函数,例如:c=a^b,表示将a和b换算为二进制形式后按位进行异或运算,遇相同位取0不同位取1。其中,a和b分别为两个不同的对象,c标记了a和b之间的相同和差异的部分,将c中取值为1的部分在a和b中对应的数据设为差异信息。例如:p1:False q1:False p^q=0,p2:False q2:True p^q=1,p3:True q3为空p^q=1,p4:True q4:True p^q=0,那么,将p2和q2,以及p3和q3,分别为差异信息。
S204:若是,则将所述安装包设为版本更新包,执行S206。
为代码库中不具有详情信息的安装包提供详情信息,并使其形成版本更新包以记载具体的升级详情,以便于任一***调用代码库中的版本更新包,均可直接获得该版本更新包相比于前一次升级更新了哪些功能或内容。
S205:获取所述差异信息中代码日志的类型,并根据所述类型在所述代码日志中***标签信息得到详情信息,汇总所述差异信息中所有代码日志的详情信息,并将汇总后的所述详情信息载入所述安装包中得到版本更新包,将所述版本更新包保存至所述代码库。
为识别出代码日志的类型,以便于对所述代码日志进行分类,本步骤根据代码日志的类型,在所述代码日志中***标签信息得到详情信息,汇总所述差异信息中所有代码日志的详情信息,并将汇总后的所述详情信息载入所述安装包中得到版本更新包的方式,对版本更新包相比对照包的更新内容及类型进行标识管理,以便于后续对代码日志进行分类。
于本实施例中,汇总所述差异信息中所有代码日志的详情信息,形成以数组结构的形式保存的详情信息,并将该详情信息载入所述安装包中。
其中,所述数组结构是在内存中开辟一段连续的且具有固定编号的空间,所述详情信息存放在所述空间之内。
在一个优选的实施例中,所述获取所述差异信息中代码日志的类型,并根据所述类型在所述代码日志中***标签信息得到详情信息的步骤,包括:
S51:获取正则表达式,其中,所述正则表达式中记录了所述代码日志类型的关键字。
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
示例性地,所述正则表达式包括第一表达式、第二表达式和第三表达式;
第一表达式中的关键字包括:“修复”和“解决”对应的中文字符,其反映所述代码日志的类型为修复(HOTFIX),其所对应的标签信息是type:HOTFIX;
第二表达式中的关键字包括:“优化”和“更新”对应的中文字符,其反映所述代码日志的类型为更新(UPDATE),其所对应的标签信息是type:UPDATE;
第三表达式中的关键字包括:“新增”和“添加”对应的中文字符,其反映所述代码日志的类型为新增(NEW),其所对应的标签信息是type:NEW。
S52:将所述正则表达式与所述差异信息中的内容进行正则匹配得到所述代码日志的类型;
示例性地,基于上述举例,代码日志A中具有关键字“优化”,判定第二表达式与代码日志A匹配;代码日志B中具有关键字“新增”,判定第三表达式与代码日志B匹配。
S53:将与所述类型对应的标签信息***所述代码日志中,并将所述代码日志转为json格式得到详情信息。
本步骤中,JSON格式是一种与开发语言无关的、轻量级的数据存储格式,全称JavaScript Object Notation,一种数据格式的标准规范,因其易于阅读的特性,提高了用户端读取详情信息内容的效率。
示例性地,基于上述举例,将标签信息type:UPDATE***到代码日志A中,并对代码日志A进行js解析得到详情信息A:
{commit_id:"de24f6c0c0d003ceccefb814b80ff2f5f94ea6bb",author:"test<[email protected]>",date:"Thu Aug 27 09:25:46 2020+0800",type:"UPDATE",message:"优化滚动条样式"}
将标签信息type:NEW***到代码日志B中,并对代码日志B进行js解析得到详情信息B:
{commit_id:"de25f6c0c0d003cdeedfb814b80ff2f5f94ea6bb",author:"test<[email protected]>",date:"Thu Aug 27 09:4531 2020+0800",type:"NEW",message:"新增帮助按键"}
S206:将所述版本更新包保存至代码库中。
为代码库中不具有详情信息的安装包提供详情信息,并使其形成版本更新包以记载具体的升级详情,以便于任一***调用代码库中的版本更新包,均可直接获得该版本更新包相比于前一次升级更新了哪些功能或内容。
S207:监听到镜像库接收到所述代码库发送的版本更新包时,从所述镜像库中提取所述版本更新包;本步骤中,通过npm publish方法控制所述代码库发布版本更新包,使所述镜像库接收到所述版本更新包,通过AOP组件监听所述镜像库是否接收到所述代码库发布的版本更新包,若是,则拦截所述镜像库的版本更新包并提取。
需要说明的是,AOP(Aspect Oriented Programming)组件为面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。采用DockerRegistry或VMware Harbor作为所述镜像库。
npm(node package manager)publish是指npm发布,是指从代码库的npm仓库中将版本更新包发布到所述镜像库的计算机方法,其中,npm是一个辅助前端开发的包管理工具,其用于对包(package,即所述版本更新包)进行发布、安装、废弃、卸载、更新、搜索等管理;npm仓库是运行在代码库中用于保存包(即:所述版本更新包)的存储模块。
S208:判断所述版本更新包中是否具有详情信息。
本步骤中,通过预置的详情正则表达式搜索所述版本更新包中是否具有详情信息,所述详情正则表达式记载有详情信息的文件名称中的关键字。
S209:若是,则按照所述类型对所述详情信息进行分类,得到至少一个记载同一所述类型的详情信息的解析表,将所述版本更新包及所述解析表发送至用户端。
为便于用户端的使用者快速获取版本更新包的升级详情,本步骤通过按照类型对所述版本更新包中所有的详情信息进行分类,汇总类型一致的详情信息形成详情集,调用表格接口(如:excel接口)将所述详情集构建成解析表,以便于用户端的使用者快速直观的获取版本更新包的升级详情,以便于使用者判断是否使用该版本更新包对其中的产品进行升级。
所述将所述版本更新包及所述解析表发送至用户端之后,所述方法还包括:
将所述版本更新包及所述解析表上传至区块链中。
需要说明的是,基于所述版本更新包及所述解析表得到对应的摘要信息,具体来说,摘要信息由所述版本更新包及所述解析表进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。用户设备可以从区块链中下载得该摘要信息,以便查证所述版本更新包及所述解析表是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
S210:若否,则生成提示信息,将所述版本更新包及所述提示信息发送至用户端。
本步骤中,生成内容为“无详情显示”的提示信息,将所述提示信息载入所述版本更新包中并将其发送至用户端,以提醒所述用户端难以自动生成详情信息,需要由用户端的开发人员手动设置,以保证可靠性。
实施例三:
请参阅图4,本实施例的一种代码更新识别装置1,运行在代码库和镜像库中,包括:
安装包提取模块11,用于在代码库接收到安装包时,从所述代码库中提取所述安装包,所述安装包是用于对产品进行升级的数据包;
差异识别模块13,用于从所述代码库中提取与所述安装包对应的对照包,识别所述安装包与所述对照包之间的差异得到至少具有一条代码日志的差异信息;
版本更新模块15,用于获取所述差异信息中代码日志的类型,并根据所述类型在所述代码日志中***标签信息得到详情信息,汇总所述差异信息中所有代码日志的详情信息,并将汇总后的所述详情信息载入所述安装包中得到版本更新包,将所述版本更新包保存至所述代码库;
镜像提取模块17,用于在所述镜像库接收到所述代码库发送的版本更新包时,从所述镜像库中提取所述版本更新包;
更新解析模块19,用于按照所述类型对所述详情信息进行分类,得到至少一个记载同一所述类型的详情信息的解析表,将所述版本更新包及所述解析表发送至用户端。
可选的,所述代码更新识别装置1还包括:
安装详情判断模块12,用于判断所述安装包中是否具有详情信息。
可选的,所述代码更新识别装置1还包括:
详情确认模块14,用于将所述安装包设为版本更新包调用更新保存模块16。
可选的,所述代码更新识别装置1还包括:
更新保存模块16,用于将所述版本更新包保存至代码库中。
可选的,所述代码更新识别装置1还包括:
更新详情判断模块18,用于判断所述版本更新包中是否具有详情信息。
可选的,所述代码更新识别装置1还包括:
提示模块20,用于生成提示信息,将所述版本更新包及所述提示信息发送至用户端。
可选的,差异识别模块13包括:
名称提取单元131,用于提取所述安装包的产品名称,从所述代码库中识别与所述产品名称一致的数据包;
对照识别单元132,用于获取所述数据包的版本号,版本号与所述安装包最接近的数据包设为对照包;
日志集单元133,用于从所述代码库中获取所述安装包的至少具有一个至少具有一条代码日志的第一日志集,及从所述代码库中获取所述对照包的代码日志并汇总形成第二日志集。
差异识别单元134,用于对所述第一日志集和所述第二日志集进行异或运算,以识别所述第一日志集和所述第二日志集之间具有差异的代码日志,并将所述具有差异的代码日志设为差异信息。
可选的,版本更新模块15包括:
正则提取单元151,用于获取正则表达式,所述正则表达式中记录了代码日志类型的关键字。
类型匹配单元152,用于将所述正则表达式与所述差异信息中的内容进行正则匹配得到所述代码日志的类型;
标签标记单元153,用于将与所述类型对应的标签信息***所述代码日志中,并将所述代码日志转为json格式得到详情信息。
可选的,镜像提取模块17包括:
更新发布单元171,用于通过npm publish方法控制所述代码库发布版本更新包,使所述镜像库接收到所述版本更新包;
监听拦截单元172,用于通过AOP组件监听所述镜像库是否接收到所述代码库发布的版本更新包,若是,则拦截并提取所述镜像库的版本更新包并提取。
本技术方案应用于计算机运维的过程优化领域,通过从所述代码库中提取与所述安装包对应的对照包,识别所述安装包与所述对照包之间的差异得到差异信息,并在所述代码日志中***标签信息得到详情信息之后,将所述详情信息构建成解析表,以便于用户端的使用者快速直观的获取版本更新包的升级详情,以便于使用者判断是否使用该版本更新包对其中的产品进行升级,实现移动终端操作体验的优化。
实施例四:
为实现上述目的,本发明还提供一种计算机设备6,实施例三的代码更新识别装置的组成部分可分散于不同的计算机设备中,计算机设备6可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个应用服务器所组成的服务器集群)等。本实施例的计算机设备至少包括但不限于:可通过***总线相互通信连接的存储器61、处理器62,如图5所示。需要指出的是,图5仅示出了具有组件-的计算机设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器61(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器61可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器61也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器61还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,存储器61通常用于存储安装于计算机设备的操作***和各类应用软件,例如实施例三的代码更新识别装置的程序代码等。此外,存储器61还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器62在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器62通常用于控制计算机设备的总体操作。本实施例中,处理器62用于运行存储器61中存储的程序代码或者处理数据,例如运行代码更新识别装置,以实现实施例一和实施例二的代码更新识别方法。
实施例五:
为实现上述目的,本发明还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器62执行时实现相应功能。本实施例的计算机可读存储介质用于存储代码更新识别装置,被处理器62执行时实现实施例一和实施例二的代码更新识别方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种代码更新识别方法,其特征在于,包括:
监听到代码库接收到安装包时,从所述代码库中提取所述安装包,其中,所述安装包是用于对产品进行升级的数据包;
从所述代码库中提取与所述安装包对应的对照包,识别所述安装包与所述对照包之间的差异得到至少具有一条代码日志的差异信息;
获取所述差异信息中代码日志的类型,并根据所述类型在所述代码日志中***标签信息得到详情信息,汇总所述差异信息中所有代码日志的详情信息,并将汇总后的所述详情信息载入所述安装包中得到版本更新包,将所述版本更新包保存至所述代码库;
监听到镜像库接收到所述代码库发送的版本更新包时,从所述镜像库中提取所述版本更新包;
按照所述类型对所述详情信息进行分类,得到至少一个记载同一所述类型的详情信息的解析表,将所述版本更新包及所述解析表发送至用户端。
2.根据权利要求1所述的代码更新识别方法,其特征在于,所述从所述代码库中提取与所述安装包对应的对照包之前,所述方法还包括:
判断所述安装包中是否具有详情信息;
若是,则将所述安装包设为版本更新包,并将所述版本更新包保存至所述代码库。
3.根据权利要求1所述的代码更新识别方法,其特征在于,所述从所述代码库中提取与所述安装包对应的对照包,解析所述安装包与所述对照包之间的差异,得到至少具有一条代码日志的差异信息的步骤,包括:
提取所述安装包的产品名称,从所述代码库中识别与所述产品名称一致的数据包;
将所述安装包的版本号设为当前版本号,及将所述数据包的的版本号设为历史版本号,将位于所述当前版本号上一顺位的历史版本号设为对照版本号,及将所述历史版本号对应的数据包设为对照包;
从所述代码库中获取所述安装包的至少具有一条代码日志的第一日志集,及从所述代码库中获取所述对照包的代码日志并汇总形成第二日志集;
对所述第一日志集和所述第二日志集进行异或运算,以识别所述第一日志集和所述第二日志集之间具有差异的代码日志,并将所述具有差异的代码日志设为差异信息。
4.根据权利要求1所述的代码更新识别方法,其特征在于,所述汇总所述差异信息中所有代码日志的详情信息,并将汇总后的所述详情信息载入所述安装包中得到版本更新包的步骤,包括:
汇总所述差异信息中所有代码日志的详情信息,形成以数组结构的形式保存的详情信息,并将该详情信息载入所述安装包中。
5.根据权利要求1所述的代码更新识别方法,其特征在于,所述获取所述差异信息中代码日志的类型,并根据所述类型在所述代码日志中***标签信息得到详情信息的步骤,包括:
获取正则表达式,其中,所述正则表达式中记录了代码日志的类型的关键字;
将所述正则表达式与所述差异信息中的内容进行正则匹配得到所述代码日志的类型;
将与所述类型对应的标签信息***所述代码日志中,并将所述代码日志转为json格式得到详情信息。
6.根据权利要求1所述的代码更新识别方法,其特征在于,所述监听到镜像库接收到所述代码库发送的版本更新包时,从所述镜像库中提取所述版本更新包的步骤,包括:
通过npm publish方法控制所述代码库发布版本更新包,使所述镜像库接收到所述版本更新包,通过AOP组件监听所述镜像库是否接收到所述代码库发布的版本更新包,若是,则拦截并提取所述镜像库的版本更新包。
7.根据权利要求1所述的代码更新识别方法,其特征在于,所述按照所述类型对所述详情信息进行分类之前,所述方法还包括:
判断所述版本更新包中是否具有详情信息;
若否,则生成提示信息,将所述版本更新包及所述提示信息发送至用户端;
所述将所述版本更新包及所述解析表发送至用户端之后,所述方法还包括:
将所述版本更新包及所述解析表上传至区块链中。
8.一种代码更新识别装置,分别与代码库和镜像库连接,其特征在于,包括:
安装包提取模块,用于在监听到代码库接收到安装包时,从所述代码库中提取所述安装包,其中,所述安装包是用于对产品进行升级的数据包;
差异识别模块,用于从所述代码库中提取与所述安装包对应的对照包,识别所述安装包与所述对照包之间的差异得到至少具有一条代码日志的差异信息;
版本更新模块,用于获取所述差异信息中代码日志的类型,并根据所述类型在所述代码日志中***标签信息得到详情信息,汇总所述差异信息中所有代码日志的详情信息,并将汇总后的所述详情信息载入所述安装包中得到版本更新包,将所述版本更新包保存至所述代码库;
镜像提取模块,用于在监听到镜像库接收到所述代码库发送的版本更新包时,从所述镜像库中提取所述版本更新包;
更新解析模块,用于按照所述类型对所述详情信息进行分类,得到至少一个记载同一所述类型的详情信息的解析表,将所述版本更新包及所述解析表发送至用户端。
9.一种计算机设备,其包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机设备的处理器执行所述计算机程序时实现权利要求1至7任一项所述代码更新识别方法的步骤。
10.一种计算机可读存储介质,所述可读存储介质上存储有计算机程序,其特征在于,所述可读存储介质存储的所述计算机程序被处理器执行时实现权利要求1至7任一项所述代码更新识别方法的步骤。
CN202110323332.3A 2021-03-26 2021-03-26 代码更新识别方法、装置、计算机设备及可读存储介质 Active CN112988193B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110323332.3A CN112988193B (zh) 2021-03-26 2021-03-26 代码更新识别方法、装置、计算机设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110323332.3A CN112988193B (zh) 2021-03-26 2021-03-26 代码更新识别方法、装置、计算机设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN112988193A true CN112988193A (zh) 2021-06-18
CN112988193B CN112988193B (zh) 2023-04-07

Family

ID=76333723

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110323332.3A Active CN112988193B (zh) 2021-03-26 2021-03-26 代码更新识别方法、装置、计算机设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN112988193B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156198A (zh) * 2013-05-14 2014-11-19 广东电网公司信息中心 一种自动生成软件集成版本更新说明方法及装置
US20140351807A1 (en) * 2013-05-24 2014-11-27 Huawei Device Co., Ltd. Method and communication device for updating web application
US20160378454A1 (en) * 2015-06-29 2016-12-29 Verizon Patent And Licensing Inc. Software updates using client self-reporting and a hierarchical data structure
CN106484771A (zh) * 2016-09-09 2017-03-08 腾讯科技(深圳)有限公司 差异信息文件生成及应用方法、装置
CN106919382A (zh) * 2017-01-22 2017-07-04 百度在线网络技术(北京)有限公司 用于生成应用更新包的方法和装置
CN109857431A (zh) * 2019-01-11 2019-06-07 平安科技(深圳)有限公司 代码修改方法及装置、计算机可读介质及电子设备
CN110865842A (zh) * 2018-08-28 2020-03-06 成都鼎桥通信技术有限公司 一种ota升级方法和设备
CN111107133A (zh) * 2019-11-08 2020-05-05 京东数字科技控股有限公司 差异包的生成方法、数据更新方法、装置和存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156198A (zh) * 2013-05-14 2014-11-19 广东电网公司信息中心 一种自动生成软件集成版本更新说明方法及装置
US20140351807A1 (en) * 2013-05-24 2014-11-27 Huawei Device Co., Ltd. Method and communication device for updating web application
US20160378454A1 (en) * 2015-06-29 2016-12-29 Verizon Patent And Licensing Inc. Software updates using client self-reporting and a hierarchical data structure
CN106484771A (zh) * 2016-09-09 2017-03-08 腾讯科技(深圳)有限公司 差异信息文件生成及应用方法、装置
CN106919382A (zh) * 2017-01-22 2017-07-04 百度在线网络技术(北京)有限公司 用于生成应用更新包的方法和装置
CN110865842A (zh) * 2018-08-28 2020-03-06 成都鼎桥通信技术有限公司 一种ota升级方法和设备
CN109857431A (zh) * 2019-01-11 2019-06-07 平安科技(深圳)有限公司 代码修改方法及装置、计算机可读介质及电子设备
CN111107133A (zh) * 2019-11-08 2020-05-05 京东数字科技控股有限公司 差异包的生成方法、数据更新方法、装置和存储介质

Also Published As

Publication number Publication date
CN112988193B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
CN102254111B (zh) 恶意网站检测方法及装置
CN111694592A (zh) 项目版本发布的管理方法以及***
CN112559354A (zh) 前端代码规范检测方法、装置、计算机设备及存储介质
CN107506256B (zh) 一种崩溃数据监控的方法和装置
CN105389177A (zh) 一种软件版本确认方法、装置及***
CN110895472A (zh) 一种识别业务变更的方法和装置
CN113157315A (zh) 一种软件不同版本的差异信息识别方法、装置、设备及介质
CN112784298A (zh) 日志脱敏方法、装置、计算机设备及存储介质
CN111666087A (zh) 运算规则更新方法、装置、计算机***及可读存储介质
US10365910B2 (en) Systems and methods for uninstalling or upgrading software if package cache is removed or corrupted
CN112817935A (zh) 基于字段类型的数据处理方法、装置、设备及存储介质
CN113535677A (zh) 数据分析查询管理方法、装置、计算机设备及存储介质
CN110245059B (zh) 一种数据处理方法、设备及存储介质
CN111240730A (zh) 一种应用程序更新方法及装置
CN111367531A (zh) 代码处理方法及装置
CN113434254B (zh) 客户端部署方法、装置、计算机设备及存储介质
CN112965721B (zh) 基于Android的项目编译方法、装置、计算机设备及存储介质
CN113177407A (zh) 数据字典的构建方法、装置、计算机设备及存储介质
CN112749124A (zh) 页面信息管理方法、装置、计算机设备及可读存储介质
CN112988193B (zh) 代码更新识别方法、装置、计算机设备及可读存储介质
CN112579958A (zh) 网页转换方法、装置、计算机设备及可读存储介质
CN112052256A (zh) 多版本请求返回方法、装置、计算机设备及可读存储介质
CN114626352A (zh) 报表自动化生成方法、装置、计算机设备及存储介质
CN114912003A (zh) 文档搜索方法、装置、计算机设备及存储介质
CN114003737A (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