CN111190637B - 一种版本文件发布的管理方法、装置以及系统 - Google Patents

一种版本文件发布的管理方法、装置以及系统 Download PDF

Info

Publication number
CN111190637B
CN111190637B CN201910673426.6A CN201910673426A CN111190637B CN 111190637 B CN111190637 B CN 111190637B CN 201910673426 A CN201910673426 A CN 201910673426A CN 111190637 B CN111190637 B CN 111190637B
Authority
CN
China
Prior art keywords
file
program
version
release
server
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
CN201910673426.6A
Other languages
English (en)
Other versions
CN111190637A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910673426.6A priority Critical patent/CN111190637B/zh
Publication of CN111190637A publication Critical patent/CN111190637A/zh
Application granted granted Critical
Publication of CN111190637B publication Critical patent/CN111190637B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration 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)
  • Information Transfer Between Computers (AREA)

Abstract

本申请涉及互联网技术领域,提供了一种版本文件发布的管理方法,该方法包括:通过预设的发布事件钩子,拦截针对目标程序将第一程序文件在第一版本文件发布服务器进行发布的发布请求事件;根据第一程序文件对于的第一校验信息与第二程序文件对应的第二校验信息不同,确定所述第一程序文件为所述第二程序文件经过修改后的文件;将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布,并通过预设的应用程序编程接口将所述第一程序文件提交至第二版本文件发布服务器,作为所述目标程序的当前版本文件进行发布。实施本申请,通过预设的事件钩子对目标程序的版本文件的发布进行管理,实现版本文件发布的统一。

Description

一种版本文件发布的管理方法、装置以及系统
技术领域
本申请设计互联网技术领域,尤其是一种版本文件发布的管理方法、装置以及系统。
背景技术
在互联网技术领域,一个个网页或一个个软件呈现出来的界面或者实现的功能,都是由程序来实现的,网页和软件的升级也需要通过修改程序,于是在一个项目设计中,存在着多个源程序文件版本。在现有技术中,将各个版本的程序文件上传到服务器中进行存储以及供项目开发人员进行查找下载,还有第三方服务器调用各个版本的程序文件进行任务发布,这样容易导致到两个服务器中程序的版本文件不一样,造成项目开发上的麻烦。
发明内容
基于上面所述的问题,本申请提供了一种版本文件发布的管理方法、装置以及系统,通过预设的事件钩子对目标程序的版本文件的发布进行管理,实现版本文件发布的统一。
第一方面,本申请提供了一种版本文件发布的管理方法,该方法包括:
通过预设的发布事件钩子,拦截针对目标程序将第一程序文件在第一版本文件发布服务器进行发布的发布请求事件;
生成所述第一程序文件对应的第一校验信息,并根据所述目标程序的程序名称获取第二程序文件对应的第二校验信息,所述第一程序文件为所述目标程序的当前版本文件;
将所述第一程序文件的第一校验信息与所述第二程序文件的第二校验信息进行比较,若所述第一程序文件对应的第一校验信息与所述第二程序文件对应的第二校验信息不同,确定所述第一程序文件为所述第二程序文件经过修改后的文件;
将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布,并通过预设的应用程序编程接口将所述第一程序文件提交至第二版本文件发布服务器,作为所述目标程序的当前版本文件进行发布。
在一种可能的实施例中,该方法还包括:
通过预设的回滚事件钩子,拦截针对所述目标程序在所述第一版本文件发布服务器上进行版本回滚的回滚请求事件,根据所述回滚请求事件确定所述目标程序回滚版本的版本文件为第三程序文件;
将所述第三程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布,并通过预设的应用程序编程接口将所述第三程序文件提交至所述第二版本文件发布服务器,作为所述目标程序的当前版本文件进行发布。
可选的,所述将所述第三程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布包括:
将所述第三程序文件上传至所述第一版本文件发布服务器,以使所述第一版本文件发布服务器将所述第三程序文件作为所述目标程序的当前版本文件进行发布。
在一种可能的实施例中,所述第一程序文件包括多个目标程序文档,所述多个目标程序文档分别存储于不同的目录分支下;
所述将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布包括:
将第一发布文件上传至所述第一版本文件发布服务器,所述第一发布文件包括所述第一程序文件中存储在预设的目标目录分支下的目标程序文档,以使所述第一版本文件发布服务器根据所述第一程序文件的程序名称,获取所述第二程序文件中除所述目标目录分支外的剩余目录分支中的目标程序文档,将所述第一发布文件与所述剩余目录分支中的目标程序文档形成所述第一程序文件,将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布。
在另一种可能的实施例中,所述第一程序文件包括多个目标程序文档;
所述将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布包括:
将第二发布文件上传至所述第一版本文件发布服务器,所述第二发布文件包括所述第一程序文件中符合预设的文档命名规则的目标程序文档,以使所述第一版本文件发布服务器根据所述第一程序文件的程序名称,获取所述第二程序文件中除符合所述预设的文档命名规则的目标程序文档外的剩余目标程序文档,将所述第二发布文件与所述剩余目标程序文档形成所述第一程序文件,将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布。
在一种可能的实现方式中,所述将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布包括:
将所述第一程序文件上传至所述第一版本文件发布服务器,以使所述第一版本文件发布服务器将所述第一程序文件作为所述目标程序的当前版本文件进行发布。
可选的,所述第一版本文件发布服务器为版本管理服务器,所述版本管理服务器用于发布所述目标程序的当前版本文件以及保存所述目标程序的各个历史版本文件;
所述第二版本文件发布服务器为任务调度管理服务器,用于获取并发布所述目标程序的当前版本文件以实现所述目标程序的当前版本文件的任务。
第二方面,本申请提供了一种版本文件发布的用户终端,包括:
拦截模块,用于通过预设的发布事件钩子,拦截针对目标程序将第一程序文件在第一版本文件发布服务器进行发布的发布请求事件;
校验模块,用于生成所述第一程序文件对应的第一校验信息,并根据所述目标程序的程序名称获取第二程序文件对应的第二校验信息,所述第一程序文件为所述目标程序的当前版本文件;
比较模块,用于将所述第一程序文件的第一校验信息与所述第二程序文件的第二校验信息进行比较,若所述第一程序文件对应的第一校验信息与所述第二程序文件对应的第二校验信息不同,确定所述第一程序文件为所述第二程序文件经过修改后的文件;
上传模块,用于将所述第一程序文件上传至所述第一版本文件发布服务器,并通过预设的应用程序编程接口将所述第一程序文件上传至第二版本文件发布服务器,以使所述第一版本文件发布服务器和所述第二版本文件发布服务器将所述第一程序文件作为所述目标程序的当前版本文件进行发布。
第三方面,本申请提供了一种版本文件发布服务器,包括:
拦截模块,用于通过预设的发布事件钩子,拦截针对目标程序将第一程序文件在第一版本文件发布服务器进行发布的发布请求事件;
校验模块,用于生成所述第一程序文件对应的第一校验信息,并根据所述目标程序的程序名称获取第二程序文件对应的第二校验信息,所述第一程序文件为所述目标程序的当前版本文件;
比较模块,用于将所述第一程序文件的第一校验信息与所述第二程序文件的第二校验信息进行比较,若所述第一程序文件对应的第一校验信息与所述第二程序文件对应的第二校验信息不同,确定所述第一程序文件为所述第二程序文件经过修改后的文件;
发布模块,用于将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布,并通过预设的应用编程接口将所述第一程序文件提交至第二版本文件发布服务器,作为所述目标程序的当前版本文件进行发布。
第四方面,本申请提供了一种版本文件发布的管理系统,该管理系统包括用户终端和版本文件发布服务器;
所述用户终端用于通过预设的发布事件钩子,拦截针对目标程序将第一程序文件在第一版本文件发布服务器进行发布的发布请求事件,生成所述第一程序文件对应的第一校验信息,并根据所述目标程序的程序名称获取第二程序文件对应的第二校验信息,其中所述第一程序文件为所述目标程序的当前版本文件,将所述第一程序文件的第一校验信息与所述第二程序文件的第二校验信息进行比较,若所述第一程序文件对应的第一校验信息与所述第二程序文件对应的第二校验信息不同,确定所述第一程序文件为所述第二程序文件经过修改后的文件,将所述第一程序文件上传至所述第一版本文件发布服务器,并通过预设的应用程序编程接口将所述第一程序文件上传至所述第二版本文件发布服务器。
所述版本文件发布服务器包括第一版本文件发布服务器和第二版本文件发布服务器,所述版本文件发布服务器用于接收所述第一程序文件,并将所述第一程序文件作为所述目标程序的当前版本文件进行发布。
第五方面,本申请提供了一种用户终端,可包括:收发器、存储器以及处理器。
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中存储的程序,包括执行本发明实施例第二方面的方法;
其中,所述用户终端中的存储器、处理器以及收发器通过通信总线和/或通信协议来进行通信。
第六方面,本申请提供了一种服务器,可包括:存储器、处理器以及收发器;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中存储的程序,包括执行本发明实施例第三方面的方法;
其中,所述服务器中的存储器、处理器以及收发器通过通信总线和/或通信协议来进行通信。
第七方面,本申请提供了一种可读存储介质,所述可读存储介质中存储有指令,当其在用户终端和/或服务器中运行时,用户终端和/或服务器会执行上述各方面所述的方法。
实施本申请,通过预设的事件钩子对目标程序的版本文件的发布进行管理,实现版本文件发布的统一。
附图说明
图1为本申请实施例提供的一种版本文件发布的管理方法的流程示意图;
图2为本申请实施例中一种用户终端的结构示意图;
图3为本申请实施例提供的一种用户终端的工作原理图;
图4为本申请另一实施例的一种版本文件发布的管理方法的流程示意图;
图5为本申请实施例中一种版本文件发布服务器的结构示意图;
图6为本申请实施例提供的一种版本文件管理服务器的工作原理图;
图7为本申请另一实施例中一种版本文件发布的管理方法的流程示意图;
图8为本申请实施例中一种版本文件发布的管理系统的系统架构示意图;
图9为本申请实施例中另一种版本文件发布的管理系统的系统架构示意图;
图10为本申请又一实施例提供的一种用户终端的结构框图;
图11为本申请又一实施例提供的一种版本文件发布服务器的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更好的说明本申请,下面对本申请涉及到的专业术语进行说明。
钩子,钩子是一种类似于中断的机制,可以拦截事件并处理消息,当指定的程序发出后,钩子就可以在程序文件到达目标之前将其捕获,从而得到对程序文件的控制权,进而可以对该程序文件进行处理或修改,添加所需的功能,例如,在本申请中,拦截将程序文件在第一版本文件发布服务器进行发布的发布请求事件,进而实现将程序文件在第一版本文件发布服务器进行发布之外,还将程序文件在第二版本文件发布服务器进行发布。
应用程序编程接口(Application Program Interface,API)是一组定义、程序及协议的集合,可以表现为一些预先定义的函数,通过API实现计算机软件之间的相互通信。程序员通过调用API函数对应用程序进行开发,而又无需访问源码以及无需理解内部工作机制的细节,可以减轻编程任务。API同时也是一种中间件,为各种不同平台提供数据共享,在本申请中,所述API用于用户终端和第二版本文件发布服务器以及第一版本文件发布服务器和第二版本文件发布服务器之间的通信。
Git(一种分布式版本控制系统)是用以有效、高速的处理项目版本管理。每个装有Git系统的用户终端拥有一个完整的版本库,每个文件的版本都在用户终端上。Git系统中一个版本的所有数据都生成一个校验信息,所述校验信息代表着文件版本的身份,在Git系统中就是以区分校验信息来对不同版本的文件进行识别和引用,校验信息表现为40个十六进制字符(0-9和a-f)组成的字符串,这些字符串是基于文件的内容或目录结构计算出来的。
SVN(SVN是Subversion的简称,一种集中式版本控制系统)有一个单一的集中管理的服务器保存所有文件的修订版本,而用户终端连到这台服务器,取出最新的文件或者提交更新。SVN系统会记录用户终端提交到集中管理服务器中的信息,包括版本号,修改,提交人等信息,SVN系统可以在接收到指令时将所述记录的信息调取出来。
为了说明本申请所述的技术方案,下面结合附图来对本申请的技术方案的实施作进一步的详细描述。
下面对本申请提供的一种版本文件发布的管理方法进行介绍。
参见图1,图1为本申请实施例提供的一种版本文件发布的管理方法的流程示意图。
需要首先说明的是,本申请实施例的下列步骤可以由版本文件发布的管理装置执行,在不同实施场景下的版本文件发布的管理装置可以为版本文件发布服务器,也可以为用户终端,下文分别结合附图4和7对两种实施场景进行介绍。
本实施例结合附图1,具体执行步骤如下:
步骤100、通过预设的发布事件钩子,拦截针对目标程序将第一程序文件在第一版本文件发布服务器进行发布的发布请求事件。具体的,所述发布事件钩子可以实施为一个脚本文件,所述脚本文件基于事件发生而被触发执行,当针对目标程序将第一程序文件在第一版本文件发布服务器进行发布的发布请求事件发生时,触发事件钩子的脚本文件的执行,捕获到所述第一程序文件。示例性的,所述目标程序为QQ,所述第一程序文件为QQ的修改了一些漏洞之后的升级版本文件,在将升级版本文件进行发布的过程中,预设的发布事件钩子将所述第一程序文件在第一版本文件发布服务器上的发布请求事件进行了拦截。
步骤101、生成所述第一程序文件对应的第一校验信息,并根据所述目标程序的程序名称获取第二程序文件对应的第二校验信息,所述第一程序文件为所述目标程序的当前版本文件。具体的,针对目标程序的程序文件至少有两个或两个以上,需要对所述目标程序的程序文件进行辨别,校验信息为所述程序文件的身份信息。通过步骤100捕获到所述第一程序文件后,生成所述第一程序文件对应的第一校验信息,其中所述第一校验信息为所述第一程序文件区别于其他的程序文件的身份信息,然后根据所述目标程序的程序名称获取第二程序对应的校验信息,示例性的,所述目标程序的程序名称为QQ,针对目标程序QQ存在多个程序文件,所述多个程序文件包括第二程序文件,根据程序名称QQ获取针对目标程序QQ的多个程序文件,可选的,根据多个目标程序文件发布时间的先后,获取最新发布的第二程序文件对应的第二校验信息。所述第一程序文件为针对所述目标程序的当前版本文件,则所述第二程序文件为针对所述目标程序的前一版本文件。
步骤102、将所述第一程序文件的第一校验信息与所述第二程序文件的第二校验信息进行比较,若所述第一程序文件对应的第一校验信息与所述第二程序文件对应的第二校验信息不同,确定所述第一程序文件为所述第二程序文件经过修改后的文件。具体的,针对目标程序的第一程序文件为当前版本文件,第二程序文件为前一版本文件,将代表第一程序文件的第一校验信息和代表第二程序文件的第二校验信息进行比较,从而可以知道针对目标程序的当前版本文件和前一版本文件是否经过了修改。若所述第一校验信息和所述第二校验信息相同,说明所述第一程序文件和所述第二程序文件相同,所述针对目标程序的当前版本文件没有经过修改,与前一版本文件一致;若所述第一校验信息和所述第二校验信息不同,说明所述第一程序文件和所述第二程序文件不同,所述目标程序的当前版本文件相对于前一版本文件经过了修改,本申请关注的是第一程序文件和第二程序文件不同的情况下的讨论。
步骤103、将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布,并通过预设的应用程序编程接口将所述第一程序文件提交至第二版本文件发布服务器,作为所述目标程序的当前版本文件进行发布。具体的,由步骤102的比较可知所述第一程序文件和所述第二程序文件不同,针对所述目标程序的当前版本文件相对于前一版本文件进行了修改,则将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布。在一种可能的实施例中,若所述第一程序文件和所述第二程序文件的校验信息相同,针对所述目标程序的当前版本文件相对于前一版本文件没有经过修改,则将所述第二程序文件进行复制作为所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布。可选的,所述发布事件钩子设置在用户终端,可以将所述第一程序文件上传至所述第一版本文件发布服务器,以使所述第一版本文件发布服务器将所述第一程序文件作为所述目标程序的当前版本文件进行发布。由步骤100通过所述预设的发布事件钩子拦截所述第一程序文件在所述第一版本文件发布服务器进行发布的发布请求事件,捕获所述第一程序文件之后,通过预设的API接口将所述第一程序文件提交至第二版本文件发布服务器作为所述目标程序的当前版本文件进行发布,以使所述第一版本文件发布服务器和所述第二版本文件发布服务器中发布的当前版本文件都是所述第一程序文件。在一种可能的实现方式中,步骤100拦截所述第一程序的发布请求事件,捕获所述第一程序文件,将所述第一程序文件封装成第一API函数,并发送至所述第二版本文件发布服务器,所述第二版本文件发布服务器通过调用所述第一API函数实现对所述目标程序的当前版本文件的发布,其中所述目标程序的当前版本文件为所述第一程序文件。
在一种可能的实施例中,所述一种版本文件发布的管理方法还包括:通过预设的回滚事件钩子,拦截针对所述目标程序在所述第一版本文件发布服务器上进行版本回滚的回滚请求事件,根据所述回滚请求事件确定所述目标程序回滚版本的版本文件为第三程序文件。具体的,所述版本回滚是将针对所述目标程序跳转至指定版本文件,所述回滚事件钩子可以实施为一个脚本文件,当针对目标程序在第一版本文件发布服务器进行版本回滚的回滚请求事件发生时,触发事件钩子的脚本文件的执行,捕获所述第三程序文件,所述目标程序的版本文件中包括所述第三程序文件。在一种可能的实现方式中,可以根据所述目标程序的程序名称以及版本号来确定所述第三程序文件,例如,所述目标程序的程序名称为QQ,包括三个程序版本文件,版本号分别为第一版本、第二版本和第三版本,针对QQ在第一版本文件发布服务器上进行版本回滚至所述第二版本的请求,所述第二版本对应的目标程序文件为所述第三程序文件。
将所述第三程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布,并通过预设的应用程序编程接口将所述第三程序文件提交至所述第二版本文件发布服务器,作为所述目标程序的当前版本文件进行发布。具体的,通过所述预设的回滚事件钩子捕获所述第三程序文件之后,将所述第三程序文件在所述第一版本文件发布服务器作为当前版本文件进行发布,可选的,所述回滚事件钩子设置在用户终端,可以将所述第三程序文件上传至所述第一版本文件发布服务器,以使所述第一版本文件发布服务器将所述第三程序文件作为所述目标程序的当前版本文件进行发布。在一种可能的实现方式中,所述回滚事件钩子捕获所述第三程序文件,将所述第三程序文件封装成第三API函数,并发送至所述第二版本文件发布服务器,所述第二版本文件发布服务器通过调用所述第三API函数实现对所述目标程序的当前版本文件的发布,其中所述目标程序的当前版本文件为所述第三程序文件。实施本实施例,可以将第一版本文件发布服务器和第二版本文件发布服务器进行统一回滚至同一版本文件。
进一步的,可以对在所述第一版本文件发布服务器和所述第二版本文件发布服务器中进行发布的版本文件按照预设的规则进行进一步的筛选。
在一种可能的实现方式中,所述第一程序文件包括多个目标程序文档,所述多个目标程序文档分别存储于不同的目录分支下;将第一发布文件上传至所述第一版本文件发布服务器,所述第一发布文件包括所述第一程序文件中存储在预设的目标目录分支下的目标程序文档,以使所述第一版本文件发布服务器根据所述第一程序文件的程序名称,获取所述第二程序文件中除所述目标目录分支外的剩余目录分支中的目标程序文档,将所述第一发布文件与所述剩余目录分支中的目标程序文档形成所述第一程序文件,将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布。具体的,所述第一程序文件经过文档存储的目标目录分支筛选得到所述第一发布文件,所述第一版本文件发布服务器根据程序名称查找到所述第一程序文件的前一版本文件,即所述第二程序文件,从所述第二程序文件中获取除目标目录分支外剩余目录分支中的目标程序文档,将所述剩余目录分支中的目标程序文档复制下来,新建一个文件,将所述复制的目标程序文档粘贴在新建的文件中,而所述第一发布文件存储在新建的文件,形成第一程序文件。示例性的,所述第一程序文件为QQ-V2.0,包括目标程序文档a、b、c、d和f,a和b存储在目录分支1,c存储在目录分支2,d和f存储在目录分支3。预设的目标目录分支为1,存储在目录分支1下的a和b为第一发布文件。所述目标程序的程序名称为QQ,根据程序名称QQ获取第二程序文件QQ-V1.0,QQ-V1.0中包括目标程序文档a、b、c、d和f,a和b存储在目录分支1,c存储在目录分支2,d和f存储在目录分支3。将除了目录分支1外的剩余目录分支中的目标程序文档进行复制,即将目录分支2中的目标程序文档c和目录分支3中的目标程序文档d和f进行复制。新建一个文件,将所述第一发布文件存储在新建的文件中,将从文件QQ-V1.0中复制的目录分支2中的目标程序文档c和目录分支3中的目标程序文档d和f粘贴在新建文件中。由于第一发布文件中包括了目录分支1的目标程序文档,且从前一版本文件中复制来了剩余的目录分支2和目录分支3的目标程序文档,则新建的文件为所述目标程序完整的当前版本文件第一程序文件,即QQ-V2.0。将所述第一程序文件在所述第一版本文件发布服务器作为所述目标程序的当前版本文件进行发布。
在另一种可能的实现方式中,所述第一程序文件包括多个目标程序文档;将第二发布文件上传至所述第一版本文件发布服务器,所述第二发布文件包括所述第一程序文件中符合预设的文档命名规则的目标程序文档,以使所述第一版本文件发布服务器根据所述第一程序文件的程序名称,获取所述第二程序文件中除符合所述预设的文档命名规则的目标程序文档外的剩余目标程序文档,将所述第二发布文件与所述剩余目标程序文档形成所述第一程序文件,将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布。具体的,所述第一程序文件经过目标程序文档预设命名规则筛选得到第二发布文件,所述第一版本文件发布服务器根据程序名称查找到所述第一程序文件的前一版本文件,即所述第二程序文件,从所述第二程序文件中获取除符合预设命名规则外的剩余目标程序文档并进行复制,新建一个文件,将复制的目标程序文档粘贴在新建文件中,而所述第二发布文件存储在新建文件,形成第一程序文件。示例性的,所述第一程序文件为QQ-V2.0,包括目标程序文档a、b-2、c-2、d和f,所述预设的文档命名规则为目标程序文档命名中包括b或c,则所述第二发布文件为b-2和c-2;所述目标程序的程序名称为QQ,根据程序名称QQ获取第二程序文件QQ-V1.0,QQ-V1.0中包括目标程序文档a、b-1、c-1、d和f,获取目标程序文档命名中不符合文档命名规则,即文档命名中不包括b或c的目标程序文档a、d和f。新建一个文件,将所述第二发布文件存储在新建文件中,将目标程序文档a、d和f复制后粘贴在新建文件中,则新建的文件为所述目标程序完整的当前版本文件第一程序文件,将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布。实施本实施例,可以通过预设的规则对进行发布的版本文件进行进一步的筛选,降低文件传输带宽的要求,提高传输速度。
在一种可能的实施例中,所述第一版本文件发布服务器为版本管理服务器,所述版本管理服务器用于发布所述目标程序的当前版本文件以及保存所述目标程序的各个历史版本文件;所述第二版本文件发布服务器为任务调度管理服务器,用于获取并发布所述目标程序的当前版本文件以实现所述目标程序的当前版本文件的任务。
实施本实施例,可以通过预设的事件钩子对目标程序的版本文件的发布进行管理,实现版本文件在多处进行发布的统一。
下面对本申请的一种版本文件发布的管理装置进行说明,在实施例中,上述检测装置可以为用户终端,如图2所示,图2为本申请实施例中一种用户终端的结构示意图,用户终端20包括:
拦截模块200,用于通过预设的发布事件钩子,拦截针对目标程序将第一程序文件在第一版本文件发布服务器进行发布的发布请求事件。具体的,所述发布事件钩子可以理解为上传事件钩子,当用户终端20接收到上传请求时,拦截模块200通过预设的上传事件钩子拦截将第一程序文件上传至第一版本文件发布服务器的上传请求事件,捕获所述第一程序文件。
校验模块201,用于生成所述第一程序文件对应的第一校验信息,并根据所述目标程序的程序名称获取第二程序文件对应的第二校验信息,所述第一程序文件为所述目标程序的当前版本文件。
比较模块202,用于将所述第一程序文件的第一校验信息与所述第二程序文件的第二校验信息进行比较,若所述第一程序文件对应的第一校验信息与所述第二程序文件对应的第二校验信息不同,确定所述第一程序文件为所述第二程序文件经过修改后的文件。
上传模块203,用于将所述第一程序文件上传至所述第一版本文件发布服务器,并通过预设的应用程序编程接口将所述第一程序文件上传至第二版本文件发布服务器,以使所述第一版本文件发布服务器和所述第二版本文件发布服务器将所述第一程序文件作为所述目标程序的当前版本文件进行发布。具体的,由比较模块202比较可知所述第一程序文件和所述第二程序文件不同,针对所述目标程序的当前版本文件相对于前一版本文件进行了修改,则将所述第一程序文件作为所述目标程序的当前版本文件,上传至所述第一版本文件发布服务器。由拦截模块300通过所述预设的发布事件钩子捕获所述第一程序文件之后,通过预设的API接口将所述第一程序文件上传至第二版本文件发布服务器,作为所述目标程序的当前版本文件进行发布,以使所述第一版本文件发布服务器和所述第二版本文件发布服务器中发布的当前版本文件都是所述第一程序文件。在一种可能的实现方式中,拦截模块200拦截所述第一程序的发布请求事件,将所述第一程序文件封装成第一API函数,并上传至所述第二版本文件发布服务器,以使所述第二版本文件发布服务器通过调用所述第一API函数实现对所述所述目标程序的当前版本文件的发布,其中所述目标程序的当前版本文件为所述第一程序文件。
可以理解的是,所述校验模块201的具体实现方法可以参见前文结合图1实施例中的步骤101,所述比较模块202的具体实现方法可以参见前文结合图1实施例中的步骤102,此处不作赘述。
在一种可能的实施例中,所述拦截模块200还用于通过预设的回滚事件钩子拦截针对所述目标程序在所述第一版本文件发布服务器上进行版本回滚的回滚请求事件,根据所述回滚请求事件确定所述目标程序回滚版本的版本文件为第三程序文件;所述上传模块203还用于将所述第三程序文件上传至所述第一版本文件发布服务器并通过预设的应用程序编程接口将所述第三程序文件上传至所述第二版本文件发布服务器,以使所述第一版本文件发布服务器和所述第二版本文件发布服务器将所述第一程序文件作为所述目标程序的当前版本文件进行发布。具体的,通过所述拦截模块200中预设的回滚事件钩子捕获所述第三程序文件之后,所述上传模块203将所述第三程序文件上传至所述第一版本文件发布服务器和所述第二版本文件发布服务器,使的所述第一版本文件发布服务器和所述第二版本文件发布服务器中发布的版本文件都是所述第三程序文件,实现回滚的版本文件一致。
进一步的,所述用户终端还包括筛选模块204,所述筛选模块204用于将所述第一版本文件发布服务器和所述第二版本文件发布服务器中进行发布的版本文件按照预设的规则进行进一步的筛选。
在一种可能的实现方式中,所述第一程序文件包括多个目标程序文档,所述多个目标程序文档分别存储于不同的目录分支下;所述筛选模块204将所述第一程序文件进行筛选,将所述第一程序文件中存储在预设的目标目录分支下的目标程序文档筛选出来形成第一发布文件,将第一发布文件上传至所述第一版本文件发布服务器,以使所述第一版本文件发布服务器根据所述第一程序文件的程序名称,获取所述第二程序文件中除所述目标目录分支外的剩余目录分支中的目标程序文档,将所述第一发布文件与所述剩余目录分支中的目标程序文档形成所述第一程序文件,将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布。具体的实现过程可以参考前文结合图1的实施例,此处不作赘述。
在另一种可能的实现方式中,所述第一程序文件包括多个目标程序文档;所述筛选模块204将所述第一程序文件进行筛选,将所述第一程序文件中符合预设的文档命名规则的目标程序文档筛选出来形成第二发布文件,将第二发布文件上传至所述第一版本文件发布服务器,以使所述第一版本文件发布服务器根据所述第一程序文件的程序名称,获取所述第二程序文件中除符合所述预设的文档命名规则的目标程序文档外的剩余目标程序文档,将所述第二发布文件与所述剩余目标程序文档形成所述第一程序文件,将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布。具体的实现过程可以参考前文结合图1的实施例,此处不作赘述。
在一种可能的实施例中,所述第一版本文件发布服务器为版本管理服务器,所述版本管理服务器用于发布所述目标程序的当前版本文件以及保存所述目标程序的各个历史版本文件;所述第二版本文件发布服务器为任务调度管理服务器,用于获取并发布所述目标程序的当前版本文件以实现所述目标程序的当前版本文件的任务。
下面对用户终端20的具体工作原理进行介绍,参见图3,图3为本申请实施例提供的一种用户终端的工作原理图,如图3所示,所述事件钩子3001设置在用户终端300中,所述事件钩子可以实施为脚本文件,所述事件钩子3001设置在用户终端300代表着所述用户终端300存放着基于事件触发的钩子脚本文件。在用户终端300将第一程序文件上传时,触发钩子脚本文件的执行,在用户终端300向所述第一版本文件发布服务器301上传第一程序文件时,通过应用程序编程接口API将所述第一程序文件上传至所述第二版本文件发布服务器,以使所述所述第一版本文件发布服务器和所述第二版本文件发布服务器都将所述第一程序文件作为所述目标程序的当前版本文件进行发布。示例性的,所述用户终端300中装有Git系统,在Git系统的目录下新建一个.git/hook文件,hook文件用于存放代表各种钩子的脚本文件,所述发布事件的钩子文件名为pre-push文件,当用户终端300接收所述第一程序文件上传至第一版本文件发布服务器401的请求时,触发.git/hook文件下面的pre-push文件的执行,将用户终端400上传所述第一程序文件至第一版本文件发布服务器401的上传事件进行拦截,在将所述第一程序文件上传至所述第一版本文件发布服务器时,并通过预设的应用程序编程接口将所述第一程序文件上传至第二版本文件发布服务器,以使所述第一版本文件发布服务器和所述第二版本文件发布服务器将所述第一程序文件作为所述目标程序的当前版本文件进行发布。
本实施例中,提供了一种版本文件发布管理的用户终端。具体的,拦截模块通过预设的上传事件钩子,拦截将第一程序文件上传至第一版本文件发布服务器的上传请求事件,然后通过比较上传的第一程序文件与第一版本文件发布服务器中存储的目标程序的前一版本文件的校验信息,得知所述第一程序文件经过了修改,上传事件钩子在用户终端将第一程序文件上传至第一版本文件发布服务器时,也将所述第一程序文件上传至第二版本文件发布服务器。实施本实施例,可以通过预设在用户终端的事件钩子对目标程序版本文件的上传进行管理,实现上传的版本文件的统一。
下面对本申请另一实施例的一种版本文件发布的管理方法的流程进行说明,参见图4,图4为本申请另一实施例的一种版本文件发布的管理方法的流程示意图,具体执行步骤如下:
步骤400、通过预设的发布事件钩子,拦截针对目标程序将第一程序文件在第一版本文件发布服务器进行发布的发布请求事件。具体的,所述发布事件钩子为上传事件事件钩子,当用户终端将程序文件上传的事件发生时,通过预设的上传事件钩子拦截将第一程序文件上传至第一版本文件发布服务器的上传请求事件,捕获所述第一程序文件。
步骤401、生成所述第一程序文件对应的第一校验信息,并根据所述目标程序的程序名称获取第二程序文件对应的第二校验信息,所述第一程序文件为所述目标程序的当前版本文件。
步骤402将所述第一程序文件的第一校验信息与所述第二程序文件的第二校验信息进行比较,若所述第一程序文件对应的第一校验信息与所述第二程序对应的第二校验信息不同,确定所述第一程序文件为所述第二程序文件经过修改后的文件。
可以理解的是,步骤401和步骤402是为了比较上传的第一程序文件与前一版本文件的第二程序文件是不一样的,所述第一程序文件为经过修改的文件,具体实现方式可以参考前文结合图1的步骤101和步骤102的实现方式。
步骤403、将所述第一程序文件上传至所述第一版本文件发布服务器。
步骤404、通过预设的应用程序编程接口将所述第一程序文件上传至第二版本文件发布服务器,以使所述第一版本文件发布服务器和所述第二版本文件发布服务器将所述第一程序文件作为所述目标程序的当前版本文件进行发布。具体的,步骤400通过预设的事件钩子捕获了所述第一程序文件,将所述第一程序文件通过预设的应用程序编程接口API上传至第二版本文件发布服务器,所述API设置在用户终端,可选的,用户终端将所述第一程序文件封装成第一API函数,并发送至所述第二版本文件发布服务器,所述第二版本文件发布服务器通过调用所述第一API函数实现对所述目标程序的当前版本文件的发布,其中所述目标程序的当前版本文件为所述第一程序文件。
可选的,通过预设的回滚事件钩子,拦截针对所述目标程序在所述第一版本文件发布服务器上进行版本回滚的回滚请求事件,根据所述回滚请求事件确定所述目标程序回滚版本的版本文件为第三程序文件;将所述第三程序文件作为所述目标程序的当前版本文件,上传至所述第一版本文件发布服务器进行发布,并通过预设的应用程序编程接口将所述第三程序文件上传至所述第二版本文件发布服务器,作为所述目标程序的当前版本文件进行发布。
示例性的,将第一发布文件上传至所述第一版本文件发布服务器,所述第一发布文件包括所述第一程序文件中存储在预设的目标目录分支下的目标程序文档,以使所述第一版本文件发布服务器根据所述第一程序文件的程序名称,获取所述第二程序文件中除所述目标目录分支外的剩余目录分支中的目标程序文档,将所述第一发布文件与所述剩余目录分支中的目标程序文档形成所述第一程序文件,将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布。
示例性的,将第二发布文件上传至所述第一版本文件发布服务器,所述第二发布文件包括所述第一程序文件中符合预设的文档命名规则的目标程序文档,以使所述第一版本文件发布服务器根据所述第一程序文件的程序名称获取所述第二程序文件中除符合所述预设的文档命名规则的目标程序文档外的剩余目标程序文档,将所述第二发布文件与所述剩余目标程序文档形成所述第一程序文件,将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布。
下面对本申请的另一种版本文件发布的管理装置进行说明,在本实施例中,所述管理装置可以为版本文件发布服务器,如图5所示,图5为本申请实施例中一种版本文件发布服务器的结构示意图,版本文件发布服务器50包括:
拦截模块500,用于通过预设的发布事件钩子,拦截针对目标程序将第一程序文件在第一版本文件发布服务器进行发布的发布请求事件。具体的,所述发布事件钩子设置在第一版本文件发布服务器,所述发布事件钩子可以理解为接收事件钩子,当版本文件发布服务器50接收到所述第一程序文件时,拦截模块500通过预设的发布事件钩子捕获所述第一程序文件。
校验模块501,用于生成所述第一程序文件对应的第一校验信息,并根据所述目标程序的程序名称获取第二程序文件对应的第二校验信息,所述第一程序文件为所述目标程序的当前版本文件。
比较模块502,用于将所述第一程序文件的第一校验信息与所述第二程序文件的第二校验信息进行比较,若所述第一程序文件对应的第一校验信息与所述第二程序文件对应的第二校验信息不同,确定所述第一程序文件为所述第二程序文件经过修改后的文件。
发布模块503,用于将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布,并通过预设的应用编程接口将所述第一程序文件提交至第二版本文件发布服务器,作为所述目标程序的当前版本文件进行发布。具体的,由拦截模块500通过所述预设的发布事件钩子,捕获所述第一程序文件之后,通过预设的API接口将所述第一程序文件提交至第二版本文件发布服务器,作为所述目标程序的当前版本文件进行发布,以使所述第一版本文件发布服务器和所述第二版本文件发布服务器中发布的当前版本文件都是所述第一程序文件。在一种可能的实现方式中,所述版本文件发布服务器50为第一版本文件发布服务器,所述拦截模块500拦截所述第一程序的发布请求事件,捕获所述第一程序文件,将所述第一程序文件封装成第一API函数,并从所述第一版本文件发布服务器将所述第一API函数传输至所述第二版本文件发布服务器,以使所述第二版本文件发布服务器通过调用所述第一API函数实现对所述第一程序文件的发布。
可以理解的是,所述校验模块501的具体实现方法可以参见前文结合图1实施例中的步骤101,所述比较模块502的具体实现方法可以参见前文结合图1实施例中的步骤102,此处不作赘述。
在一种可能的实施例中,所述拦截模块500还用于通过预设的回滚事件钩子,拦截针对所述目标程序在所述第一版本文件发布服务器上进行版本回滚的回滚请求事件,根据所述回滚请求事件确定所述目标程序回滚版本的版本文件为第三程序文件;所述发布模块503还用于将所述第三程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布,并通过预设的应用程序编程接口将所述第三程序文件传输至所述第二版本文件发布服务器,以使所述第一版本文件发布服务器和所述第二版本文件发布服务器将所述第三程序文件作为所述目标程序的当前版本文件进行发布。具体的,所述第一版本文件发布服务器为版本管理服务器,所述版本管理服务器用于发布所述目标程序的当前版本文件以及保存所述目标程序的各个历史版本文件;所述第二版本文件发布服务器为任务调度管理服务器,用于获取并发布所述目标程序的当前版本文件以实现所述目标程序的当前版本文件的任务。所述第一版本文件发布服务器接收到回滚请求时,根据回滚请求中的版本号回滚至版本号对应的第三程序文件。通过所述拦截模块500中预设的回滚事件钩子,捕获所述第三程序文件之后,将所述第三程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布,并通过预设的应用程序编程接口将所述第三程序文件传输至所述第二版本文件发布服务器,所述第一版本文件发布服务器和所述第二版本文件发布服务器都回滚到当前版本文件,即所述第三程序文件。
下面对第一版本文件发布服务器50的具体工作原理进行介绍,参见图6,图6为本申请实施例提供的一种版本文件发布服务器的工作原理图,如图6所示,所述事件钩子6010设置在版本文件发布服务器,所述事件钩子可以实施为脚本文件。在一种可能的实施例中,所述事件钩子6010可以设置在第一版本文件发布服务器,钩子脚本文件存储在所述第一版本文件发布服务器601中。在一种可能的实施例中,所述第一版本服务器601为SVN系统的中央服务器,用户终端700中装有SVN系统,在用户终端700上传第一程序文件时,触发所述第一版本文件发布服务器中的SVN钩子,即SVN hook,当所述第一版本文件发布服务器接收到所述第一程序文件时,触发SVN hook中的脚本文件执行,将所述第一程序文件在第一版本文件发布服务器进行发布的发布事件拦截,提供预设的应用程序编程接口将所述第一程序文件传输至所述第二版本文件发布服务器602,以使所述第一版本文件发布服务器和所述第二版本文件发布服务器将所述第一程序文件作为所述目标程序的当前版本文件进行发布。在另外一种可能的实施例中,所述第一版本文件发布服务为Git系统的服务器,用户终端600中装有Git系统,在用户终端600上传第一程序文件时,触发所述第一版本文件发布服务器中的webhook,webhook是钩子中的一种,此时所述第一版本文件发布服务器可以理解为任务调度服务器,而第二版本文件发布服务器为版本管理服务器,当所述第一版本文件发布服务器接收到所述第一程序文件时,触发webhook中的钩子脚本文件执行,将所述第一程序在所述第一版本文件发布服务器中进行发布的发布事件进行拦截,提供预设的应用程序编程接口将所述第一程序文件传输至所述第二版本文件发布服务器602,以使所述第一版本文件发布服务器和所述第二版本文件发布服务器将所述第一程序文件作为所述目标程序的当前版本文件进行发布。
实施本实施例,可以通过预设在服务器的事件钩子对目标程序的版本文件发布进行管理,实现版本文件在多处发布的统一。
下面对本申请另一实施例中的一种版本文件发布的管理方法流程进行说明,参见图7,图7为本申请另一实施例中的一种版本文件发布的管理方法流程示意图,具体执行步骤如下:
步骤700、通过预设的发布事件钩子,拦截针对目标程序将第一程序文件在第一版本文件发布服务器进行发布的发布请求事件。具体的,所述发布事件钩子为上传事件事件钩子,在用户终端向第一版本文件发布服务器上传第一程序文件时,第一版本文件发布服务器接收所述第一程序文件时,触发发布事件钩子拦截将所述第一程序文件在所述第一版本文件发布服务器进行发布的发布事件。
步骤701、生成所述第一程序文件对应的第一校验信息,并根据所述目标程序的程序名称获取第二程序文件对应的第二校验信息,所述第一程序文件为所述目标程序的当前版本文件。
步骤702、将所述第一程序文件的第一校验信息与所述第二程序文件的第二校验信息进行比较,若所述第一程序文件对应的第一校验信息与所述第二程序对应的第二校验信息不同,确定所述第一程序文件为所述第二程序文件经过修改后的文件。
可以理解的是,步骤701和步骤702是为了比较上传的第一程序文件与前一版本文件的第二程序文件是不一样的,所述第一程序文件为经过修改的文件,具体实现方式可以参考前文结合图1的步骤101和步骤102的实现方式。
步骤703、将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布。
步骤704、通过预设的应用程序编程接口将所述第一程序文件提交至第二版本文件发布服务器,以使所述第一版本文件发布服务器和所述第二版本文件发布服务器将所述第一程序文件作为所述目标程序的当前版本文件进行发布。具体的,步骤700通过预设的事件钩子拦截了将所述第一程序文件在所述第一版本文件发布服务器进行发布的发布请求事件,将所述第一程序文件通过预设的应用程序编程接口API传输至第二版本文件发布服务器,所述API设置在第一版本文件发布服务器,可选的,所述第一版本文件发布服务器将所述第一程序文件封装成第一API函数,并传输至所述第二版本文件发布服务器,所述第二版本文件发布服务器通过调用所述第一API函数实现对所述目标程序的当前版本文件的发布,其中所述目标程序的当前版本文件为所述第一程序文件。
可选的,通过预设的回滚事件钩子,拦截针对所述目标程序在所述第一版本文件发布服务器上进行版本回滚的回滚请求事件,根据所述回滚请求事件确定所述目标程序回滚版本的版本文件为第三程序文件;将所述第三程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布,并通过预设的应用程序编程接口将所述第三程序文件传输至所述第二版本文件发布服务器,以使所述第一版本文件发布服务器和所述第二版本文件发布服务器将所述第三程序文件作为所述目标程序的当前版本文件进行发布。
下面对本申请的一种版本文件发布的管理系统进行说明,所述版本文件发布的管理系统包括用户终端和版本文件发布服务器,其中:
所述用户终端用于通过预设的发布事件钩子,拦截针对目标程序将第一程序文件在第一版本文件发布服务器进行发布的发布请求事件,生成所述第一程序文件对应的第一校验信息,并根据所述目标程序的程序名称,获取第二程序文件对应的第二校验信息,其中所述第一程序文件为所述目标程序的当前版本文件,将所述第一程序文件的第一校验信息与所述第二程序文件的第二校验信息进行比较,若所述第一程序文件对应的第一校验信息与所述第二程序文件对应的第二校验信息不同,确定所述第一程序文件为所述第二程序文件经过修改后的文件,将所述第一程序文件上传至所述第一版本文件发布服务器,并通过预设的应用程序编程接口将所述第一程序文件上传至所述第二版本文件发布服务器;
所述版本文件发布服务器包括第一版本文件发布服务器和第二版本文件发布服务器,所述版本文件发布服务器用于接收所述第一程序文件,并将所述第一程序文件作为所述目标程序的当前版本文件进行发布。
下面结合附图对本申请的一种版本文件发布的管理系统进行说明,参见图8至图9。
在一种可能的实施例中,参见图8,图8为本申请实施例中一种版本文件发布管理系统的系统架构示意图,如图8所示,所述用户终端800向所述第一版本文件发布服务器8010上传所述第一程序文件,所述第一版本文件发布服务器8010用于接收所述用户终端800上传的所述第一程序文件,触发设置在用户终端800中的发布事件钩子,所述第二版本文件发布服务器用于接收用户终端800通过API上传的所述第一程序文件,将所述第一程序文件在所述第一版本文件发布服务器和所述第二版本文件发布服务器作为所述目标程序的当前版本文件进行发布。
在另一种可能的实施例中,参见图9,图9为本申请实施例中另一种版本文件发布管理系统的系统架构示意图,如图9所示,所述用户终端900向所述第一版本文件发布服务器9010上传所述第一程序文件,触发设置在所述第一版本文件发布服务器9010中的发布事件钩子,所述第一版本文件发布服务器9010通过预设的应用程序编程接口API向所述第二版本文件发布服务器9011传输所述第一程序文件,将所述第一程序文件在所述第一版本文件发布服务器和所述第二版本文件发布服务器作为所述目标程序的当前版本文件进行发布。
可以理解的是,所述版本文件发布的管理系统可以包括用户终端和版本文件发布管理服务器,所述用户终端可以执行前文结合图2至图4所描述的实施例,此处不作赘述。同理,所述版本文件发布服务器也可以执行前文结合图5至图7所描述的实施例,此处不作赘述。
本发明中,用户终端可以为装有版本管理系统如Git系统或SVN系统的电脑、平板电脑、个人数字助理(personal digital assistant,PDA)、可穿戴设备等便携式电子设备。以用户终端为电脑为例:
请参见图10,图10为本申请又一实施例提供的一种用户终端的结构框图。用户终端包括:收发器1000、处理器1003以及存储器1004,所述收发器1000可以包括输入单元1001和通信单元1002。
其中,所述存储器1004用于存储程序指令以及目标程序对于的目标程序文件;
其中,所述处理器1003执行所述存储器1004中存储的程序指令,包括:
通过预设的上传事件钩子,拦截针对目标程序将第一程序文件上传至第一版本文件发布服务器的上传请求事件;
生成所述第一程序文件对应的第一校验信息,并根据所述目标程序的程序名称获取第二程序文件对应的第二校验信息,所述第一程序文件为所述目标程序的当前版本文件;
将所述第一程序文件的第一校验信息与所述第二程序文件的第二校验信息进行比较,若所述第一程序文件对应的第一校验信息与所述第二程序文件对应的第二校验信息不同,确定所述第一程序文件为所述第二程序文件经过修改后的文件;
将所述第一程序文件上传至所述第一版本文件发布服务器,并通过预设的应用程序编程接口将所述第一程序文件上传至第二版本文件发布服务器,以使所述第一版本文件发布服务器和所述第二版本文件发布服务器将所述第一程序文件作为所述目标程序的当前版本文件进行发布。
其中,所述用户终端中的存储器、处理器以及收发器通过通信总线和/或通信协议来进行通信。
具体的,输入单元1001可以为触摸屏、鼠标和键盘,在本发明中,所述键盘接收项目开发者的版本修改、上传等操作,触发事件钩子。
处理器1003,用户终端的神经中枢和指挥中心。处理器1003可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。处理器1003中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器1003中的存储器为高速缓冲存储器。该存储器可以保存处理器1003刚用过或循环使用的指令或数据。如果处理器1003需要再次使用该指令或数据,可从所述处理器1003中的存储器直接调用。避免了重复存取,减少了处理器1003的等待时间,因而提高了系统的效率。示例性的,处理器1003包括有一个或多个接口,接口包括通用输入输出(general-purpose input/output,GPIO)接口,GPIO接口软件可控制,处理器1003与收发器1000以及存储器1004可以通过GPIO连接。
通信单元1003,通信单元1002包括用户终端内的接口通信和用户终端与服务器之间的移动通信。具体的,用户终端内的接口通信支持处理器1003接收键盘鼠标的上传请求,然后通过通信单元1002将第一程序文件上传至版本文件发布服务器。
存储器1004,包括内部存储器和外部存储器。外部存储器包括SD卡(SecureDigital Memory Card,SD card)实现扩展用户终端的存储能力。外部存储卡通过外部存储器接口与处理器1003通信,实现数据存储功能,例如将所述目标程序的程序文件存储在外部存储卡。内部存储器可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器1003通过运行存储在内部存储器的指令,从而执行用户终端的各种功能应用以及数据处理。内部存储器可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储用户终端使用过程中所创建的数据(比如音频数据,电话本等)等。
可以理解的是,本发明实施例示意的结构并不构成对用户终端的具体限定。在本申请另一些实施例中,用户终端可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
参见图11,图11为本申请又一实施例提高的一种版本文件发布服务器的结构框图。本申请中包括第一版本文件发布服务器和第二版本文件发布服务器,所述第一版本文件发布服务器和所述第二版本文件发布服务器都包括:收发器1100、处理器1101以及存储器1102。
其中,所述存储器1102用于存储程序;
所述处理器1101用于执行所述存储器1102中存储的程序,所述第一版本文件发布服务器中的处理器执行的程序包括:
通过预设的发布事件钩子,拦截针对目标程序将第一程序文件在第一版本文件发布服务器进行发布的发布请求事件;
生成所述第一程序文件对应的第一校验信息,并根据所述目标程序的程序名称获取第二程序文件对应的第二校验信息,所述第一程序文件为所述目标程序的当前版本文件;
将所述第一程序文件的第一校验信息与所述第二程序文件的第二校验信息进行比较,若所述第一程序文件对应的第一校验信息与所述第二程序文件对应的第二校验信息不同,确定所述第一程序文件为所述第二程序文件经过修改后的文件;
将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布,并通过预设的应用程序编程接口将所述第一程序文件提交至第二版本文件发布服务器,作为所述目标程序的当前版本文件进行发布。
所述第二版本文件发布服务器执行的程序包括:接收所述第一版本文件发布服务器提交的所述第一程序文件,并将所述第一程序文件作为所述目标程序的当前版本文件,在所述第二版本文件发布服务器进行发布。
其中,所述第一版本文件发布服务器和第二版本文件发布服务器中的存储器1102、处理器1101以及收发器1100通过通信总线和/或通信协议来进行通信。
具体的,所述第一版本文件发布服务器的收发器1100用于接收用户终端上传的程序文件,所述第二版本文件发布服务器的收发器1100用于接收第一版本文件发布服务器传输的程序文件。
需要说明的是,上述术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
本申请的实施例可以提供预设的事件钩子实现第一版本文件发布服务器和第二版本文件发布服务器发布的版本文件一致,可以理解的是,本申请也可以用于多于两个版本文件发布服务器的版本统一发布,具体实现方法可以参见本申请中的实施。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置以及系统,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种版本文件发布的管理方法,其特征在于,所述方法包括:
通过预设的发布事件钩子,拦截针对目标程序将第一程序文件在第一版本文件发布服务器进行发布的发布请求事件;
生成所述第一程序文件对应的第一校验信息,并根据所述目标程序的程序名称获取第二程序文件对应的第二校验信息,所述第一程序文件为所述目标程序的当前版本文件;
将所述第一程序文件的第一校验信息与所述第二程序文件的第二校验信息进行比较,若所述第一程序文件对应的第一校验信息与所述第二程序文件对应的第二校验信息不同,确定所述第一程序文件为所述第二程序文件经过修改后的文件;
将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布,并通过预设的应用程序编程接口将所述第一程序文件提交至第二版本文件发布服务器,作为所述目标程序的当前版本文件进行发布。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过预设的回滚事件钩子,拦截针对所述目标程序在所述第一版本文件发布服务器上进行版本回滚的回滚请求事件,根据所述回滚请求事件确定所述目标程序回滚版本的版本文件为第三程序文件;
将所述第三程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布,并通过预设的应用程序编程接口将所述第三程序文件提交至所述第二版本文件发布服务器,作为所述目标程序的当前版本文件进行发布。
3.根据权利要求2所述的方法,其特征在于,所述将所述第三程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布包括:
将所述第三程序文件上传至所述第一版本文件发布服务器,以使所述第一版本文件发布服务器将所述第三程序文件作为所述目标程序的当前版本文件进行发布。
4.根据权利要求1所述的方法,其特征在于,所述第一程序文件包括多个目标程序文档,所述多个目标程序文档分别存储于不同的目录分支下;
所述将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布包括:
将第一发布文件上传至所述第一版本文件发布服务器,所述第一发布文件包括所述第一程序文件中存储在预设的目标目录分支下的目标程序文档,以使所述第一版本文件发布服务器根据所述第一程序文件的程序名称,获取所述第二程序文件中除所述目标目录分支外的剩余目录分支中的目标程序文档,将所述第一发布文件与所述剩余目录分支中的目标程序文档形成所述第一程序文件,将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布。
5.根据权利要求1所述的方法,其特征在于,所述第一程序文件包括多个目标程序文档;
所述将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布包括:
将第二发布文件上传至所述第一版本文件发布服务器,所述第二发布文件包括所述第一程序文件中符合预设的文档命名规则的目标程序文档,以使所述第一版本文件发布服务器根据所述第一程序文件的程序名称,获取所述第二程序文件中除符合所述预设的文档命名规则的目标程序文档外的剩余目标程序文档,将所述第二发布文件与所述剩余目标程序文档形成所述第一程序文件,将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布。
6.根据权利要求1所述的方法,其特征在于,所述将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布包括:
将所述第一程序文件上传至所述第一版本文件发布服务器,以使所述第一版本文件发布服务器将所述第一程序文件作为所述目标程序的当前版本文件进行发布。
7.根据权利要求1所述的方法,其特征在于,所述第一版本文件发布服务器为版本管理服务器,所述版本管理服务器用于发布所述目标程序的当前版本文件以及保存所述目标程序的各个历史版本文件;
所述第二版本文件发布服务器为任务调度管理服务器,用于获取并发布所述目标程序的当前版本文件以实现所述目标程序的当前版本文件的任务。
8.一种版本文件发布的用户终端,其特征在于,包括:
拦截模块,用于通过预设的发布事件钩子,拦截针对目标程序将第一程序文件在第一版本文件发布服务器进行发布的发布请求事件;
校验模块,用于生成所述第一程序文件对应的第一校验信息,并根据所述目标程序的程序名称获取第二程序文件对应的第二校验信息,所述第一程序文件为所述目标程序的当前版本文件;
比较模块,用于将所述第一程序文件的第一校验信息与所述第二程序文件的第二校验信息进行比较,若所述第一程序文件对应的第一校验信息与所述第二程序文件对应的第二校验信息不同,确定所述第一程序文件为所述第二程序文件经过修改后的文件;
上传模块,用于将所述第一程序文件上传至所述第一版本文件发布服务器,并通过预设的应用程序编程接口将所述第一程序文件上传至第二版本文件发布服务器,以使所述第一版本文件发布服务器和所述第二版本文件发布服务器将所述第一程序文件作为所述目标程序的当前版本文件进行发布。
9.一种版本文件发布服务器,其特征在于,包括:
拦截模块,用于通过预设的发布事件钩子,拦截针对目标程序将第一程序文件在第一版本文件发布服务器进行发布的发布请求事件;
校验模块,用于生成所述第一程序文件对应的第一校验信息,并根据所述目标程序的程序名称获取第二程序文件对应的第二校验信息,所述第一程序文件为所述目标程序的当前版本文件;
比较模块,用于将所述第一程序文件的第一校验信息与所述第二程序文件的第二校验信息进行比较,若所述第一程序文件对应的第一校验信息与所述第二程序文件对应的第二校验信息不同,确定所述第一程序文件为所述第二程序文件经过修改后的文件;
发布模块,用于将所述第一程序文件作为所述目标程序的当前版本文件,在所述第一版本文件发布服务器进行发布,并通过预设的应用编程接口将所述第一程序文件提交至第二版本文件发布服务器,作为所述目标程序的当前版本文件进行发布。
10.一种版本文件发布的管理系统,其特征在于,所述管理系统包括用户终端和版本文件发布服务器;
所述用户终端用于通过预设的发布事件钩子,拦截针对目标程序将第一程序文件在第一版本文件发布服务器进行发布的发布请求事件,生成所述第一程序文件对应的第一校验信息,并根据所述目标程序的程序名称获取第二程序文件对应的第二校验信息,其中所述第一程序文件为所述目标程序的当前版本文件,将所述第一程序文件的第一校验信息与所述第二程序文件的第二校验信息进行比较,若所述第一程序文件对应的第一校验信息与所述第二程序文件对应的第二校验信息不同,确定所述第一程序文件为所述第二程序文件经过修改后的文件,将所述第一程序文件上传至所述第一版本文件发布服务器,并通过预设的应用程序编程接口将所述第一程序文件上传至第二版本文件发布服务器;
所述版本文件发布服务器包括第一版本文件发布服务器和第二版本文件发布服务器,所述版本文件发布服务器用于接收所述第一程序文件,并将所述第一程序文件作为所述目标程序的当前版本文件进行发布。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序,该程序在执行时,执行如权利要求1-7任一项所述的方法的步骤。
12.一种计算机程序产品,该计算机程序产品包括程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现如权利要求1-7中任意一项所述的方法的步骤。
CN201910673426.6A 2019-07-24 2019-07-24 一种版本文件发布的管理方法、装置以及系统 Active CN111190637B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910673426.6A CN111190637B (zh) 2019-07-24 2019-07-24 一种版本文件发布的管理方法、装置以及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910673426.6A CN111190637B (zh) 2019-07-24 2019-07-24 一种版本文件发布的管理方法、装置以及系统

Publications (2)

Publication Number Publication Date
CN111190637A CN111190637A (zh) 2020-05-22
CN111190637B true CN111190637B (zh) 2024-06-07

Family

ID=70707148

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910673426.6A Active CN111190637B (zh) 2019-07-24 2019-07-24 一种版本文件发布的管理方法、装置以及系统

Country Status (1)

Country Link
CN (1) CN111190637B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114265634A (zh) * 2021-12-22 2022-04-01 中国农业银行股份有限公司 基于集中式版本控制系统的文件提交方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105094851A (zh) * 2015-09-06 2015-11-25 浪潮软件股份有限公司 一种基于Git随时发布代码的实现方法
CN106775713A (zh) * 2016-12-14 2017-05-31 网易(杭州)网络有限公司 文件审核方法、装置及文件提交控制系统
CN107577469A (zh) * 2017-08-21 2018-01-12 厦门悦讯教育科技有限公司 一种软件打包发布管理方法
CN107766747A (zh) * 2017-10-31 2018-03-06 维沃移动通信有限公司 校验应用程序安装包完整性的方法、移动终端及服务器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7225430B2 (en) * 2001-07-26 2007-05-29 Landesk Software Limited Software code management method and apparatus
US9495132B2 (en) * 2008-07-15 2016-11-15 Oracle International Corporation Release management systems and methods

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105094851A (zh) * 2015-09-06 2015-11-25 浪潮软件股份有限公司 一种基于Git随时发布代码的实现方法
CN106775713A (zh) * 2016-12-14 2017-05-31 网易(杭州)网络有限公司 文件审核方法、装置及文件提交控制系统
CN107577469A (zh) * 2017-08-21 2018-01-12 厦门悦讯教育科技有限公司 一种软件打包发布管理方法
CN107766747A (zh) * 2017-10-31 2018-03-06 维沃移动通信有限公司 校验应用程序安装包完整性的方法、移动终端及服务器

Also Published As

Publication number Publication date
CN111190637A (zh) 2020-05-22

Similar Documents

Publication Publication Date Title
KR102026225B1 (ko) 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법
US11442897B2 (en) Optimizing content storage through stubbing
WO2019201039A1 (zh) 一种更新应用程序的方法、系统及应用服务器
CN110851253B (zh) 一种远程运维的方法、系统、存储介质及电子设备
CN109032691A (zh) 一种小程序运行方法、装置及存储介质
CN111694638A (zh) 规则包加载方法、规则包执行方法及终端设备
CN110308917B (zh) 小程序发布方法、装置、设备及计算机存储介质
JP7397094B2 (ja) リソース構成方法、リソース構成装置、コンピューター機器、及びコンピュータープログラム
US9535666B2 (en) Dynamic agent delivery
US10404568B2 (en) Agent manager for distributed transaction monitoring system
KR20220007704A (ko) 구성 업데이트 방법 및 장치, 기기, 저장 매체
CN104699511A (zh) 插件升级方法及装置
JP7257554B2 (ja) モデルファイルのディストリビューション方法、プラットホーム、システム、端末及び可読記憶媒体
CN110765394A (zh) so文件加载方法、装置、存储介质及终端设备
KR20190110082A (ko) 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법
CN111190637B (zh) 一种版本文件发布的管理方法、装置以及系统
CN112925589A (zh) 扩展接口的调用方法及装置
CN113032224A (zh) 一种信息采集方法、装置、电子设备及可读存储介质
CN113542022A (zh) 组网系统的组网管理方法、装置、终端设备及存储介质
CN111722994A (zh) 一种任务请求的响应方法及设备
JP2005228183A (ja) プログラム実行方法、および、プログラム実行のための計算機システム
CN115878138A (zh) 应用预下载方法、装置、计算机、存储介质
CN106936643B (zh) 一种设备联动方法以及终端设备
CN112367205B (zh) 一种对http调度请求的处理方法及调度系统
CN113157348A (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