CN110737458A - 一种代码更新方法和相关装置 - Google Patents
一种代码更新方法和相关装置 Download PDFInfo
- Publication number
- CN110737458A CN110737458A CN201910879179.5A CN201910879179A CN110737458A CN 110737458 A CN110737458 A CN 110737458A CN 201910879179 A CN201910879179 A CN 201910879179A CN 110737458 A CN110737458 A CN 110737458A
- Authority
- CN
- China
- Prior art keywords
- code
- server
- code file
- file
- difference
- 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
Links
Images
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
- G06F8/658—Incremental updates; Differential 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 Transfer Between Computers (AREA)
Abstract
本申请涉及研发过程优化,公开了一种代码更新方法和相关装置,包括:在第i个时刻获取代码库中的N个代码文件;确定N个代码文件对应的N个版本号;调用版本号对比算法对比N个版本号,以得到第一版本号和第二版本号;分别确定第一版本号对应的第一代码文件和第二版本号对应的第二代码文件;将第一代码文件与第二代码文件进行对比,以得到第一代码文件的第一差异代码文件和第二代码文件的第二差异代码文件;根据第二差异代码文件和第一差异代码文件更新第一代码文件,以得到包括多行代码的第一代码文件,多行代码包括在第二差异代码文件中。实施本发明实施例,有利于提高代码更新效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种代码更新方法和相关装置。
背景技术
随着互联网的快速发展,大量的应用程序也涌现。在应用程序发布之后,为了修复各种错误、缺陷、漏洞或发布新功能,需要不断的对应用程序进行更新、优化,以提高用户体验。
然而,现有技术中,往往只能靠开发人员将旧版本的代码进行替换,才能进行更新和优化。这种代码更新方式效率低。
发明内容
本发明实施例提供了一种代码更新方法和相关装置,实施本发明实施例,有利于提高代码更新效率。
本发明实施例第一方面提供了一种代码更新方法,包括:
服务器在第i个时刻获取代码库中的N个代码文件,其中,i为正整数,N为大于1的正整数;
所述服务器确定所述N个代码文件对应的N个版本号;
所述服务器调用版本号对比算法对比所述N个版本号,以得到第一版本号和第二版本号,其中,所述版本号为所述N个版本号中版本号最低的版本号,所述第二版本号为所述N个版本号中版本号最高的版本号;
所述服务器分别确定所述第一版本号对应的第一代码文件和所述第二版本号对应的第二代码文件;
所述服务器将所述第一代码文件与所述第二代码文件进行对比,以得到所述第一代码文件的第一差异代码文件和所述第二代码文件的第二差异代码文件;
所述服务器根据所述第二差异代码文件和所述第一差异代码文件更新所述第一代码文件,以得到包括多行代码的所述第一代码文件,其中,所述多行代码包括在所述第二差异代码文件中。
本发明实施例第二方面提供了一种代码更新装置,包括:
获取模块,用于在第i个时刻获取代码库中的N个代码文件,其中,i为正整数,N为大于1的正整数;
第一确定模块,用于确定所述N个代码文件对应的N个版本号;
第一对比模块,用于调用版本号对比算法对比所述N个版本号,以得到第一版本号和第二版本号,其中,所述版本号为所述N个版本号中版本号最低的版本号,所述第二版本号为所述N个版本号中版本号最高的版本号;
第二确定模块,用于确定所述第一版本号对应的第一代码文件,所述第二版本号对应的第二代码文件;
第二对比模块,用于将所述第一代码文件与所述第二代码文件进行对比,以得到所述第一代码文件的第一差异代码文件和所述第二代码文件的第二差异代码文件;
更新模块,用于根据所述第二差异代码文件和所述第一差异代码文件更新所述第一代码文件,以得到包括多行代码的所述第一代码文件,其中,所述多行代码包括在所述第二差异代码文件中。
本发明实施例第三方面提供了一种代码更新的电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被生成由所述处理器执行,以执行权利要求第一方面任一项方法中的步骤的指令。
本发明实施例第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述存储计算机程序被所述处理器执行,以实现权利要求第一方面任一项所述的方法。
可以看出,上述技术方案中,服务器在第i个时刻获取代码库中的N个代码文件,以确定N个代码文件对应的N个版本号,从而调用版本号对比算法对比N个版本号得到第一版本号和第二版本号,通过版本号对比算法实现了最高版本号与最低版本号的确定,加快了版本号确定效率。接着,服务器分别确定第一版本号对应的第一代码文件和第二版本号对应的第二代码文件,从而将第一代码文件与第二代码文件进行对比,以得到第一代码文件的第一差异代码文件和第二代码文件的第二差异代码文件,最后,根据第二差异代码文件和第一差异代码文件更新第一代码文件,以得到包括多行代码的第一代码文件,其中,多行代码包括在第二差异代码文件中,实现了不同版本的代码文件之间的更新,避免了开发人员替换旧版本的代码,提高了代码更新效率,也实现了有针对性的更新代码文件。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1A为本发明实施例提供的一种通信系统的结构示意图;
图1B为本发明实施例提供的一种服务器的结构示意图;
图2为本发明实施例提供的一种代码更新方法的流程示意图;
图3为本发明实施例提供的又一种代码更新方法的流程示意图;
图4A为本发明实施例提供的一种通信系统的结构示意图;
图4B为本发明实施例提供的又一种代码更新方法的流程示意图;
图4C是本发明一个实施例提供的一种行数设置界面的示意图;
图5为本发明的实施例涉及的硬件运行环境的服务器结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下分别进行详细说明。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,参见图1A,图1A为本发明的一个实施例提供的一种通信系统的结构示意图,通信系统可包括通过网络互联的服务器110和终端120等。服务器110可实现本发明实施例提及的所有功能,但不限于本发明实施例提及的所有功能。终端120可实现本发明实施例提及的所有功能,但不限于本发明实施例提及的所有功能。
参见图1B,图1B为本发明的一个实施例提供的一种服务器110的结构示意图,服务器110可以包括:获取模块111、第一确定模块112、第一对比模块113、第二确定模块114、第二对比模块115和更新模块116等。
获取模块111,用于在第i个时刻获取代码库中的N个代码文件,其中,i为正整数,N为大于1的正整数;
其中,i例如可等于1、2、3、5、6、11、13、20或其他值。
其中,N例如可等于1、2、3、5、6、11、13、20或其他值。
可选的,在数据库中存储有多个时刻,所述获取模块,还用于接收第一终端发送的代码更新指令,其中,所述代码更新指令携带第i个时刻标识;从所述数据库中获取与所述第i个时刻标识匹配的所述第i个时刻。
其中,第一终端例如可以是手机、平板电脑、笔记本电脑、掌上电脑、MID或其他终端设备。
其中,代码库中包括N个代码文件,其中,N个代码文件为所述代码库在所述第i个时刻全部的代码文件。进一步的,N个代码文件中的每个代码文件包括多行代码。
其中,N个代码文件对应N个版本号,N个代码文件中的每个代码文件对应的版本号均不相同。
第一确定模块112,用于确定所述N个代码文件对应的N个版本号;
第一对比模块113,用于调用版本号对比算法对比所述N个版本号,以得到第一版本号和第二版本号,其中,所述版本号为所述N个版本号中版本号最低的版本号,所述第二版本号为所述N个版本号中版本号最高的版本号;
其中,版本号对比算法用于对比所述N个版本号。
第二确定模块114,用于确定所述第一版本号对应的第一代码文件,所述第二版本号对应的第二代码文件;
第二对比模块115,用于将所述第一代码文件与所述第二代码文件进行对比,以得到所述第一代码文件的第一差异代码文件和所述第二代码文件的第二差异代码文件;
可选的,第一差异代码文件包括所述第一代码文件不同于所述第二代码文件的多行代码;第二差异代码文件包括所述第二代码文件不同于所述第一代码文件的多行代码。
举例来说,第一代码文件包括:
#include<stdio.h>
int main()
{
printf("Hello,World!\n");
return 0;
}
第二代码文件包括:
#include<stdio.h>
void main()
{
printf("你好!\n");
}
第一差异代码文件包括:
void main()
{
printf("你好!\n");
}
第二差异代码文件包括:
int main()
{
printf("Hello,World!\n");
return 0;
}
更新模块116,用于根据所述第二差异代码文件和所述第一差异代码文件更新所述第一代码文件,以得到包括多行代码的所述第一代码文件,其中,所述多行代码包括在所述第二差异代码文件中。
当然,服务器110的模块架构并不限于上述举例。
本发明实施例的技术方案可以基于图1A举例所示架构的通信系统或其形变架构来具体实施。
参见图2,图2是本发明一个实施例提供的一种代码更新方法的流程示意图,这种方法可包括但不限于如下步骤:
201、服务器在第i个时刻获取代码库中的N个代码文件,其中,i为正整数,N为大于1的正整数;
其中,i例如可等于1、2、3、5、6、11、13、20或其他值。
其中,N例如可等于1、2、3、5、6、11、13、20或其他值。
可选的,在数据库中存储有多个时刻,服务器接收第一终端发送的代码更新指令,其中,所述代码更新指令携带第i个时刻标识;服务器从所述数据库中获取与所述第i个时刻标识匹配的所述第i个时刻。
其中,第一终端例如可以是手机、平板电脑、笔记本电脑、掌上电脑、MID或其他终端设备。
其中,代码库中包括N个代码文件,其中,N个代码文件为所述代码库在所述第i个时刻全部的代码文件。进一步的,N个代码文件中的每个代码文件包括多行代码。
其中,N个代码文件对应N个版本号,N个代码文件中的每个代码文件对应的版本号均不相同。
202、所述服务器确定所述N个代码文件对应的N个版本号;
203、所述服务器调用版本号对比算法对比所述N个版本号,以得到第一版本号和第二版本号,其中,所述版本号为所述N个版本号中版本号最低的版本号,所述第二版本号为所述N个版本号中版本号最高的版本号;
其中,版本号对比算法用于对比所述N个版本号。
204、所述服务器分别确定所述第一版本号对应的第一代码文件和所述第二版本号对应的第二代码文件;
205、所述服务器将所述第一代码文件与所述第二代码文件进行对比,以得到所述第一代码文件的第一差异代码文件和所述第二代码文件的第二差异代码文件;
可选的,第一差异代码文件包括所述第一代码文件不同于所述第二代码文件的多行代码;第二差异代码文件包括所述第二代码文件不同于所述第一代码文件的多行代码。
举例来说,第一代码文件包括:
#include<stdio.h>
int main()
{
printf("Hello,World!\n");
return 0;
}
第二代码文件包括:
#include<stdio.h>
void main()
{
printf("你好!\n");
}
第一差异代码文件包括:
void main()
{
printf("你好!\n");
}
第二差异代码文件包括:
int main()
{
printf("Hello,World!\n");
return 0;
}
206、所述服务器根据所述第二差异代码文件和所述第一差异代码文件更新所述第一代码文件,以得到包括多行代码的所述第一代码文件,其中,所述多行代码包括在所述第二差异代码文件中。
可以看出,上述技术方案中,服务器在第i个时刻获取代码库中的N个代码文件,以确定N个代码文件对应的N个版本号,从而调用版本号对比算法对比N个版本号得到第一版本号和第二版本号,通过版本号对比算法实现了最高版本号与最低版本号的确定,加快了版本号确定效率。接着,服务器分别确定第一版本号对应的第一代码文件和第二版本号对应的第二代码文件,从而将第一代码文件与第二代码文件进行对比,以得到第一代码文件的第一差异代码文件和第二代码文件的第二差异代码文件,最后,根据第二差异代码文件和第一差异代码文件更新第一代码文件,以得到包括多行代码的第一代码文件,其中,多行代码包括在第二差异代码文件中,实现了不同版本的代码文件之间的更新,避免了开发人员替换旧版本的代码,提高了代码更新效率,也实现了有针对性的更新代码文件。
下面对从所述服务器在第i个时刻获取代码库中的N个代码文件的这一过程进行具体举例说明。
参见图3,图3是本发明的实施例提供的一种代码更新方法的流程示意图,这种方法可包括但不限于如下步骤:
301、所述服务器检测是否有访问所述代码库的权限;
302、若否,所述服务器则获取访问所述代码库的访问标识;
可选的,在本方案一种可能的实施方式中,所述方法还包括:
若是,所述服务器则调用所述访问接口在所述第i个时刻获取所述代码库中的所述N个代码文件。
303、所述服务器确定与所述访问标识匹配的访问接口;
304、所述服务器调用所述访问接口在所述第i个时刻获取所述代码库中的所述N个代码文件。
可以看出,上述技术方案中,通过设置访问代码库的权限,有利于提高安全性。同时,在服务器无访问代码库的权限时,通过获取访问代码库的访问标识,来确定与访问标识匹配的访问接口,从而可以通过调用访问接口实现对代码库的访问,有利于提高代码文件的安全性,防止被泄露。
可选的,在一种可能的实施方式中,所述服务器确定所述N个代码文件对应的N个版本号,包括:
所述服务器调用所述访问接口在所述第i个时刻获取所述代码库中的包括所述N个版本标识的版本标识文件,其中,所述N个版本标识用于指示所述N个代码文件对应的所述N个版本号;
所述服务器提取所述版本标识文件中的所述N个版本标识;
所述服务器根据所述N个版本标识确定所述N个代码文件对应的所述N个版本号。
其中,N个版本标识为所述版本标识文件在所述第i个时刻全部的版本标识。
可以看出,上述技术方案中,通过调用访问接口实现获取在第i个时刻代码库中包括的版本标识文件,从而根据版本标识文件包括的N个版本标识确定N个代码文件对应的N个版本号,提高了版本号的准确获取。
下面对所述服务器将所述第一代码文件与所述第二代码文件进行对比,以得到所述第一代码文件的第一差异代码文件和所述第二代码文件的第二差异代码文件的这一过程进行具体举例说明。
参见图4A,图4A为本发明的一个实施例提供的一种通信系统的结构示意图,通信系统可包括通过网络互联的服务器410和多个终端420等。服务器410可实现本发明实施例提及的所有功能,但不限于本发明实施例提及的所有功能。多个终端420可实现本发明实施例提及的所有功能,但不限于本发明实施例提及的所有功能。
参见图4B,图4B是本发明一个实施例提供的又一种代码更新方法的流程示意图,这种方法可包括但不限于如下步骤:
401、所述服务器按照预设行数将所述第一代码文件切分成多个第一代码子文件;
其中,预设行数可以由管理员设置,也可以配置在服务器的配置文件中。
进一步,服务器显示行数设置界面,其中,图4C是本发明一个实施例提供的一种行数设置界面的示意图,行数设置界面包括行数输入框和行数确认按钮。
当管理员在行数设置界面的行数输入框输入行数时,服务器在行数设置界面上显示行数推荐列表,行数推荐列表包括多个推荐行数。管理员可以在行数输入框输入行数,也可以在行数推荐列表中选择推荐行数。当管理员从行数推荐列表上选择推荐行数时,推荐行数会显示在行数输入框中。在管理员对行数确认按钮进行确认操作时,服务器可以检测到确认指令;在检测到确认指令时,服务器从行数输入框中获取行数,以将该行数设置为预设行数。
进一步的,多个推荐行数由所述服务器根据所述服务器的系统性能处于不同情况时生成。比如,服务器在空闲的时候,即服务器的系统性能处于第一状态时,行数推荐列表上包括的多个推荐行数可能都比较小;服务器在忙碌的时候,即服务器的系统性能处于第二状态时,行数推荐列表上包括的多个推荐行数可能都比较大。第一状态不同于第二状态。
402、所述服务器向多个终端发送多个对比请求,其中,所述多个对比请求中的每个对比请求携带所述多个第一代码子文件中的每个第一代码子文件和所述第二代码文件,每个对比请求用于指示每个终端将每个第一代码子文件与所述第二代码文件进行对比,以得到第一差异代码子文件和第二差异代码子文件;
其中,多个终端例如都可以是手机、平板电脑、笔记本电脑、掌上电脑、MID或其他终端设备。
其中,举例来说,多个第一代码子文件为10个第一代码子文件,那么服务器会向10个终端发送10个对比请求,每个对比请求携带每个第一代码子文件和第二代码文件。进一步的,10个对比请求中的某个对比请求携带10个第一代码子文件中的某个第一代码子文件和第二代码文件。同时,某个对比请求用于指示10个终端中的某个终端将某个第一代码子文件与第二代码文件进行对比,以得到某个第一差异代码子文件和某个第二差异代码子文件。
可选的,在一种可能的实施方式中,在所述服务器向多个终端发送多个对比请求之前,所述方法还包括:
所述服务器获取切分所述第一代码文件的切分顺序;
所述服务器按照所述切分顺序对所述多个第一代码子文件进行编号,以得到多个顺序编号;
所述服务器向所述多个终端发送所述多个对比请求,包括:
所述服务器按照所述多个顺序编号由大到小的顺序向所述多个终端发送所述多个对比请求。
可以看出,上述技术方案,通过获取切分第一代码文件的切分顺序,以按照切分顺序对多个第一代码子文件进行编号,以得到多个顺序编号,从而实现按照多个顺序编号由大到小的顺序向多个终端发送多个对比请求,提高的服务器处理效率。
403、所述服务器接收所述多个终端发送的多个对比响应,其中,所述多个对比响应中的每个对比响应携带所述第一差异代码子文件和所述第二差异代码子文件;
举例来说,服务器接收10个终端中的某个终端针对某个对比请求发送的某个对比响应,即服务器获取了某个第一差异代码子文件和某个第二差异代码子文件。
404、所述服务器获取所述多个对比响应中的每个对比响应携带所述第一差异代码子文件和所述第二差异代码子文件,以得到多个第一差异代码子文件和多个第二差异代码子文件;
405、所述服务器根据所述多个第一差异代码子文件和所述多个第二差异代码子文件确定所述第一差异代码文件和所述第二差异代码文件。
可以看出,上述技术方案中,通过按照预设行数将第一代码文件切分成多个第一代码子文件,并向多个终端发送多个对比请求,实现了并行对比,同时,通过将第一代码文件切分成多个第一代码子文件,让每个终端将每个第一代码子文件与第二代码子文件,提高了对比效率,减轻服务器的处理负担。接着,服务器接收多个终端发送的多个对比响应,以获取多个对比响应中的每个对比响应携带第一差异代码子文件和第二差异代码子文件,以得到多个第一差异代码子文件和多个第二差异代码子文件,最后,服务器根据多个第一差异代码子文件和多个第二差异代码子文件确定第一差异代码文件和第二差异代码文件,从而获得了最终的对比结果。
可选的,在一种可能的实施方式中,所述服务器根据所述多个第一差异代码子文件和所述多个第二差异代码子文件确定所述第一差异代码文件和所述第二差异代码文件,包括:
所述服务器从所述多个第一差异代码子文件中筛选出与所述多个第一代码子文件不同的多个第三差异代码子文件;
所述服务器将所述多个第三差异代码子文件进行合成,以得到所述第一差异代码文件;
所述服务器从所述多个第二差异代码子文件中筛选出与所述多个第二代码子文件不同的多个第四差异代码子文件;
所述服务器将所述多个第四差异代码子文件进行合成,以得到所述第二差异代码文件。
可以看出,上述技术方案中,通过从多个第一差异代码子文件中筛选出与多个第一代码子文件不同的多个第三差异代码子文件,从而为后续将多个第三差异代码子文件进行合成做准备,同时,提高的筛选效率,避免服务器将第一代码文件包括的多行代码一一与第二代码文件进行对比。进一步的,通过将多个第三差异代码子文件进行合成,减少了文件量,也得到了第一差异代码文件。同理,通过从多个第二差异代码子文件中筛选出与多个第二代码子文件不同的多个第四差异代码子文件,从而为后续将多个第四差异代码子文件进行合成做准备,同时,提高的筛选效率,避免服务器将第一代码文件包括的多行代码一一与第二代码文件进行对比。进一步的,通过将多个第四差异代码子文件进行合成,减少了文件量,也得到了第二差异代码文件。
可选的,第一方面,在一种可能的实施方式中,所述方法还包括:
所述服务器从所述第一代码文件关联的第一配置文件中提取第一配置参数;
所述服务器将所述第一配置参数与第二配置参数进行对比,以得到所述第一配置参数的第一差异配置参数和所述第二配置参数的第二差异配置参数,其中,所述第二配置参数为第二配置文件中的配置参数,所述第二配置文件与所述第二代码文件关联;
所述服务器将所述第二差异配置参数替换成所述第一差异配置参数。
在更新完代码文件后,还需要更新代码文件关联的配置文件,才能确定更新后的代码文件能够正常编译、运行,并实现更新后的代码文件对应的功能。其中,这里更新代码文件关联的配置文件指更新配置文件包括的配置参数。
可选的,第一差异配置参数包括所述第一配置参数不同于所述第二配置参数的多个配置参数;第二差异配置参数包括所述第二配置参数不同于所述第一配置参数的多个配置参数。
举例来说,第一配置参数包括:a=1,b=5,c=2;第二配置参数包括:a=6,b=1,c=2。那么,第一差异配置参数包括:a=6,b=1;第二差异配置参数包括:a=1,b=5。
可以看出,上述技术方案中,通过从第一代码文件关联的第一配置文件中提取第一配置参数,以将第一配置参数与第二配置参数进行对比,从而得到第一差异配置参数和第二差异配置参数,最后,将第二差异配置参数替换成第一差异配置参数,从而实现配置文件中包括的配置参数的更新,有利于让更新后的代码文件能够正常编译、运行,并实现更新后的代码文件对应的功能。
可选的,基于第一方面,在本方案第一种可能的实施方式中,服务器从所述第一代码文件关联的第一配置文件中提取第一配置参数,包括:
所述服务器从所述代码库中获取与所述第二代码文件关联的M个配置文件,以提取所述M个配置文件的M个后缀名,其中,M为正整数;
所述服务器将所述M个后缀名与预设第一后缀名进行对比,以确定所述M个后缀名中是否存在与所述预设第一后缀名匹配的第一后缀名;
若是,所述服务器则从所述代码库中获取与所述第一代码文件关联的K个配置文件,以提取所述K个配置文件的K个后缀名,其中,K为正整数;
所述服务器将所述K个后缀名与预设第一后缀名进行对比,以确定所述K个后缀名中是否存在与预设第一后缀名匹配的第二后缀名;
若是,所述服务器则从与所述第二后缀名对应的所述第一配置文件中提取第一配置参数。
其中,M例如可等于1、2、3、5、6、11、13、20或其他值。
其中,K例如可等于1、2、3、5、6、11、13、20或其他值。
其中,预设第一后缀名为第二配置文件的后缀名。预设第二后缀名为第一配置文件的后缀名。
可以看出,上述技术方案中,服务器先从代码库中获取与第二代码文件关联的M个配置文件,以提取M个配置文件的M个后缀名,接着,将M个后缀名与预设第一后缀名进行对比,以确定M个后缀名中是否存在与预设第一后缀名匹配的第一后缀名,从而实现对代码库中是否存在第二配置文件的后缀名的判断,进一步的,通过判断第二配置文件的后缀名来确定代码库中是否存在第二配置文件,在代码库中存在第二配置文件,也就是说,服务器需要对配置参数进行更新。接着,服务器从代码库中获取与第一代码文件关联的K个配置文件,以提取K个配置文件的K个后缀名,进而判断K个后缀名中是否存在与预设第一后缀名匹配的第二后缀名,也就是确定代码库中是否存在第一配置文件,若存在,服务器才从与第二后缀名对应的第一配置文件中提取第一配置参数,避免了在无第二配置文件服务器仍从第一配置文件中提取第一配置参数,减轻服务器不必要的工作。
可选的,基于第一方面或第一方面的第一种可能的实施方式,在本方案第二种可能的实施方式中,在服务器则从所述代码库中获取与所述第一代码文件关联的K个配置文件,以提取所述K个配置文件的K个后缀名之前,所述方法还包括:
所述服务器获取与所述第一后缀名匹配的所述第二配置文件;
所述服务器提取所述第二配置文件中的所述第二配置参数。
可选的,第二方面,在本方案一种可能的实施方式中,在所述服务器将所述第二差异配置参数替换成所述第一差异配置参数之后,所述方法还包括:
所述服务器获取与所述第一代码文件对应的第一版本标识;
所述服务器将所述第一版本标识更新为在所述第i个时刻的最新版本标识;
所述服务器将在所述第i个时刻的最新版本标识设置为包括多行代码的所述第一代码文件对应的第二版本标识;
所述服务器调用所述访问接口将所述代码版本标识文件中的所述第一版本标识替换成所述第二版本标识。
可以看出,上述技术方案中,通过获取与第一代码文件对应的第一版本标识,以实现第一版本标识更新为在第i个时刻的最新版本标识,进一步的,将在第i个时刻的最新版本标识设置为包括多行代码的第一代码文件对应的第二版本标识,最后,调用访问接口将代码版本标识文件中的第一版本标识替换成第二版本标识,实现了在代码以及配置参数更新完毕后对版本标识的更新。
参见图5,图5为本申请的实施例涉及的硬件运行环境的服务器结构示意图。本发明实施例提供了一种代码更新的电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,以执行包括任一项信息推送方法中的步骤的指令。其中,如图5所示,本申请的实施例涉及的硬件运行环境的服务器可以包括:
处理器501,例如CPU。
存储器502,可选的,存储器可以为高速RAM存储器,也可以是稳定的存储器,例如磁盘存储器。
通信接口503,用于实现处理器501和存储器502之间的连接通信。
本领域技术人员可以理解,图5中示出的服务器的结构并不构成对其的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图5所示,存储器502中可以包括操作系统、网络通信模块以及数据处理的程序。操作系统是管理和控制服务器硬件和软件资源的程序,支持人员管理的程序以及其他软件或程序的运行。网络通信模块用于实现存储器502内部各组件之间的通信,以及与服务器内部其他硬件和软件之间通信。
在图5所示的服务器中,处理器501用于执行存储器502中存储的人员管理的程序,实现以下步骤:
在第i个时刻获取代码库中的N个代码文件,其中,i为正整数,N为大于1的正整数;
确定所述N个代码文件对应的N个版本号;
调用版本号对比算法对比所述N个版本号,以得到第一版本号和第二版本号,其中,所述版本号为所述N个版本号中版本号最低的版本号,所述第二版本号为所述N个版本号中版本号最高的版本号;
分别确定所述第一版本号对应的第一代码文件和所述第二版本号对应的第二代码文件;
将所述第一代码文件与所述第二代码文件进行对比,以得到所述第一代码文件的第一差异代码文件和所述第二代码文件的第二差异代码文件;
根据所述第二差异代码文件和所述第一差异代码文件更新所述第一代码文件,以得到包括多行代码的所述第一代码文件,其中,所述多行代码包括在所述第二差异代码文件中。
本申请涉及的服务器的具体实施可参见上述代码更新方法的各实施例,在此不做赘述。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述存储计算机程序被所述处理器执行,以实现以下步骤:
在第i个时刻获取代码库中的N个代码文件,其中,i为正整数,N为大于1的正整数;
确定所述N个代码文件对应的N个版本号;
调用版本号对比算法对比所述N个版本号,以得到第一版本号和第二版本号,其中,所述版本号为所述N个版本号中版本号最低的版本号,所述第二版本号为所述N个版本号中版本号最高的版本号;
分别确定所述第一版本号对应的第一代码文件和所述第二版本号对应的第二代码文件;
将所述第一代码文件与所述第二代码文件进行对比,以得到所述第一代码文件的第一差异代码文件和所述第二代码文件的第二差异代码文件;
根据所述第二差异代码文件和所述第一差异代码文件更新所述第一代码文件,以得到包括多行代码的所述第一代码文件,其中,所述多行代码包括在所述第二差异代码文件中。
本申请涉及的计算机可读存储介质的具体实施可参见上述代码更新方法的各实施例,在此不做赘述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应所述知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应所述知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应所述理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性或者其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的全部或部分可以以软件产品的形式体现出来,所述计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种代码更新方法,其特征在于,包括:
服务器在第i个时刻获取代码库中的N个代码文件,其中,i为正整数,N为大于1的正整数;
所述服务器确定所述N个代码文件对应的N个版本号;
所述服务器调用版本号对比算法对比所述N个版本号,以得到第一版本号和第二版本号,其中,所述版本号为所述N个版本号中版本号最低的版本号,所述第二版本号为所述N个版本号中版本号最高的版本号;
所述服务器分别确定所述第一版本号对应的第一代码文件和所述第二版本号对应的第二代码文件;
所述服务器将所述第一代码文件与所述第二代码文件进行对比,以得到所述第一代码文件的第一差异代码文件和所述第二代码文件的第二差异代码文件;
所述服务器根据所述第二差异代码文件和所述第一差异代码文件更新所述第一代码文件,以得到包括多行代码的所述第一代码文件,其中,所述多行代码包括在所述第二差异代码文件中。
2.根据权利要求1所述的方法,其特征在于,所述服务器在第i个时刻获取代码库中的N个代码文件,包括:
所述服务器检测是否有访问所述代码库的权限;
若否,所述服务器则获取访问所述代码库的访问标识;
所述服务器确定与所述访问标识匹配的访问接口;
所述服务器调用所述访问接口在所述第i个时刻获取所述代码库中的所述N个代码文件。
3.根据权利要求1或2所述的方法,其特征在于,所述服务器确定所述N个代码文件对应的N个版本号,包括:
所述服务器调用所述访问接口在所述第i个时刻获取所述代码库中的包括所述N个版本标识的版本标识文件,其中,所述N个版本标识用于指示所述N个代码文件对应的所述N个版本号;
所述服务器提取所述版本标识文件中的所述N个版本标识;
所述服务器根据所述N个版本标识确定所述N个代码文件对应的所述N个版本号。
4.根据权利要求1所述的方法,其特征在于,所述服务器将所述第一代码文件与所述第二代码文件进行对比,以得到所述第一代码文件的第一差异代码文件和所述第二代码文件的第二差异代码文件,包括:
所述服务器按照预设行数将所述第一代码文件切分成多个第一代码子文件;
所述服务器向多个终端发送多个对比请求,其中,所述多个对比请求中的每个对比请求携带所述多个第一代码子文件中的每个第一代码子文件和所述第二代码文件,每个对比请求用于指示每个终端将每个第一代码子文件与所述第二代码文件进行对比,以得到第一差异代码子文件和第二差异代码子文件;
所述服务器接收所述多个终端发送的多个对比响应,其中,所述多个对比响应中的每个对比响应携带所述第一差异代码子文件和所述第二差异代码子文件;
所述服务器获取所述多个对比响应中的每个对比响应携带所述第一差异代码子文件和所述第二差异代码子文件,以得到多个第一差异代码子文件和多个第二差异代码子文件;
所述服务器根据所述多个第一差异代码子文件和所述多个第二差异代码子文件确定所述第一差异代码文件和所述第二差异代码文件。
5.根据权利要求4所述的方法,其特征在于,在所述服务器向多个终端发送多个对比请求之前,所述方法还包括:
所述服务器获取切分所述第一代码文件的切分顺序;
所述服务器按照所述切分顺序对所述多个第一代码子文件进行编号,以得到多个顺序编号;
所述服务器向所述多个终端发送所述多个对比请求,包括:
所述服务器按照所述多个顺序编号由大到小的顺序向所述多个终端发送所述多个对比请求。
6.根据权利要求4所述的方法,其特征在于,所述服务器根据所述多个第一差异代码子文件和所述多个第二差异代码子文件确定所述第一差异代码文件和所述第二差异代码文件,包括:
所述服务器从所述多个第一差异代码子文件中筛选出与所述多个第一代码子文件不同的多个第三差异代码子文件;
所述服务器将所述多个第三差异代码子文件进行合成,以得到所述第一差异代码文件;
所述服务器从所述多个第二差异代码子文件中筛选出与所述多个第二代码子文件不同的多个第四差异代码子文件;
所述服务器将所述多个第四差异代码子文件进行合成,以得到所述第二差异代码文件。
7.根据权利要求4-6任意一项所述的方法,其特征在于,所述方法还包括:
所述服务器从所述第一代码文件关联的第一配置文件中提取第一配置参数;
所述服务器将所述第一配置参数与第二配置参数进行对比,以得到所述第一配置参数的第一差异配置参数和所述第二配置参数的第二差异配置参数,其中,所述第二配置参数为第二配置文件中的配置参数,所述第二配置文件与所述第二代码文件关联;
所述服务器将所述第二差异配置参数替换成所述第一差异配置参数。
8.一种代码更新装置,其特征在于,包括:
获取模块,用于在第i个时刻获取代码库中的N个代码文件,其中,i为正整数,N为大于1的正整数;
第一确定模块,用于确定所述N个代码文件对应的N个版本号;
第一对比模块,用于调用版本号对比算法对比所述N个版本号,以得到第一版本号和第二版本号,其中,所述版本号为所述N个版本号中版本号最低的版本号,所述第二版本号为所述N个版本号中版本号最高的版本号;
第二确定模块,用于确定所述第一版本号对应的第一代码文件,所述第二版本号对应的第二代码文件;
第二对比模块,用于将所述第一代码文件与所述第二代码文件进行对比,以得到所述第一代码文件的第一差异代码文件和所述第二代码文件的第二差异代码文件;
更新模块,用于根据所述第二差异代码文件和所述第一差异代码文件更新所述第一代码文件,以得到包括多行代码的所述第一代码文件,其中,所述多行代码包括在所述第二差异代码文件中。
9.一种代码更新的电子设备,其特征在于,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被生成由所述处理器执行,以执行权利要求1-7任一项方法中的步骤的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述存储计算机程序被所述处理器执行,以实现权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910879179.5A CN110737458A (zh) | 2019-09-18 | 2019-09-18 | 一种代码更新方法和相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910879179.5A CN110737458A (zh) | 2019-09-18 | 2019-09-18 | 一种代码更新方法和相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110737458A true CN110737458A (zh) | 2020-01-31 |
Family
ID=69268033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910879179.5A Pending CN110737458A (zh) | 2019-09-18 | 2019-09-18 | 一种代码更新方法和相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110737458A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897568A (zh) * | 2020-07-06 | 2020-11-06 | 北京中关村银行股份有限公司 | 一种系统校验的方法、装置、设备及存储介质 |
CN112230985A (zh) * | 2020-10-23 | 2021-01-15 | 微民保险代理有限公司 | 静态文件流程、小程序版本管理方法、装置及计算机设备 |
CN112287658A (zh) * | 2020-11-03 | 2021-01-29 | 深圳壹账通智能科技有限公司 | 一种业务数据处理方法、装置、电子设备以及介质 |
-
2019
- 2019-09-18 CN CN201910879179.5A patent/CN110737458A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897568A (zh) * | 2020-07-06 | 2020-11-06 | 北京中关村银行股份有限公司 | 一种系统校验的方法、装置、设备及存储介质 |
CN111897568B (zh) * | 2020-07-06 | 2023-12-26 | 北京中关村银行股份有限公司 | 一种系统校验的方法、装置、设备及存储介质 |
CN112230985A (zh) * | 2020-10-23 | 2021-01-15 | 微民保险代理有限公司 | 静态文件流程、小程序版本管理方法、装置及计算机设备 |
CN112230985B (zh) * | 2020-10-23 | 2024-04-05 | 微民保险代理有限公司 | 静态文件流程、小程序版本管理方法、装置及计算机设备 |
CN112287658A (zh) * | 2020-11-03 | 2021-01-29 | 深圳壹账通智能科技有限公司 | 一种业务数据处理方法、装置、电子设备以及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9639444B2 (en) | Architecture for end-to-end testing of long-running, multi-stage asynchronous data processing services | |
CN110737458A (zh) | 一种代码更新方法和相关装置 | |
CN109977099A (zh) | 数据库部署方法、用户设备、存储介质及装置 | |
US20170177316A1 (en) | Mobile application deployment for distributed computing environments | |
CN109815112B (zh) | 基于功能测试的数据调试方法、装置及终端设备 | |
CN111190962A (zh) | 一种文件同步方法、装置及本地终端 | |
CN110688305B (zh) | 测试环境同步方法、装置、介质、电子设备 | |
CN114465998A (zh) | 多设备的文件传输方法、装置、终端设备及可读存储介质 | |
CN107066522B (zh) | 数据库的访问方法和装置 | |
CN112631686A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN116257438A (zh) | 接口测试用例的更新方法及相关设备 | |
CN112597123B (zh) | 数据多版本动态切换方法及装置 | |
KR102205686B1 (ko) | 후보 문자 순위화 방법 및 장치와 문자 입력 방법 및 장치 | |
CN112364005A (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
CN111488286A (zh) | 一种Android模块独立开发的方法及装置 | |
CN116483707A (zh) | 测试方法、装置、设备、存储介质及程序产品 | |
CN115729590A (zh) | 服务部署方法、装置、设备和计算机可读存储介质 | |
CN114070889B (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
CN116151631A (zh) | 一种业务决策处理系统、一种业务决策处理方法和装置 | |
CN109284278B (zh) | 基于数据分析技术的计算逻辑迁移方法及终端设备 | |
CN114996246A (zh) | 一种基于NiFi组件的表多个字段校验的数据清洗方法 | |
CN110377665B (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN113704120A (zh) | 数据传输方法、装置、设备及存储介质 | |
CN109814911A (zh) | 用于管理脚本程序的方法、装置、计算机设备及存储介质 | |
CN104679782A (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 |