一种编译版本自动更新的方法与装置与流程

文档序号:11285910阅读:208来源:国知局
一种编译版本自动更新的方法与装置与流程

本发明涉及虚拟机编译环境技术领域,特别是涉及一种编译版本自动更新的方法与装置。



背景技术:

开放源代码的版本控制系统(subversion,svn)采用了分支管理系统,它将系统整体的信息安全功能均衡合理地分布在不同的子系统中,使各子系统的功能得到最大限度的发挥,子系统之间互相补充,系统整体性能大于各子系统功能之和。

当前项目中最新的vmware编译环境大多数在svn端保存,而每位研发成员在本地端都会配有自己的vmware编译环境。由于svn端的vmware编译环境经常更新,但由于研发成员不清楚本地端的vmware编译环境版本,因此无法知道是否与svn端的vmware编译环境有差异,故无法进行差异化更新,只能进行完全的手动拷贝操作,这样会浪费许多时间,并且手动操作存在失误的风险,甚至有些文件在拷贝时会破坏其文件类型,例如软链接文件等,导致本地端的vmware编译环境遭到破坏。

可见,如何提升本地端编译版本更新的工作效率和安全性,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明实施例的目的是提供一种编译版本自动更新的方法与装置,可以。

为解决上述技术问题,本发明实施例提供一种编译版本自动更新的方法,包括:

读取svn端的版本控制文件,得到svn端版本号;其中,所述svn端版本号有其对应的目标脚本;

判断差异记录文件中是否记录有本地端版本号;

若否,则从所述svn端拷贝并执行目标脚本,并将所述目标脚本存储于所述差异记录文件中,完成本地端编译版本的更新;

若是,则判断所述本地端版本号与所述svn端版本号是否一致;

若不一致,则从所述svn端拷贝并执行目标脚本,并将生成的变更文件中的数据保存至所述差异记录文件中,完成本地端编译版本的更新。

可选的,在所述执行目标脚本之前,还包括:

当第一文件属于压缩文件时,则对所述第一文件进行解压缩处理;其中,所述第一文件为所述目标脚本中包含的任意一个文件。

可选的,还包括:

接收用户输入的查询指令,获取所述svn端版本号对应的差异文件;

判断所述变更文件与所述差异文件是否一致;

若不一致,则重新从所述svn端拷贝并执行目标脚本,并将生成的变更文件中的数据保存至所述差异记录文件中,完成本地端编译版本的更新。

本发明实施例还提供了一种编译版本自动更新的装置,包括得到单元、第一判断单元、第一处理单元、第二判断单元和第二处理单元,

所述得到单元,用于读取svn端的版本控制文件,得到svn端版本号;其中,所述svn端版本号有其对应的目标脚本;

所述第一判断单元,用于判断差异记录文件中是否记录有本地端版本号;

若否,则触发所述第一处理单元,所述第一处理单元,用于从所述svn端拷贝并执行目标脚本,并将所述目标脚本存储于所述差异记录文件中,完成本地端编译版本的更新;

若是,则触发所述第二判断单元,所述第二判断单元,用于判断所述本地端版本号与所述svn端版本号是否一致;

若不一致,则触发所述第二处理单元,所述第二处理单元,用于从所述svn端拷贝并执行目标脚本,并将生成的变更文件中的数据保存至所述差异记录文件中,完成本地端编译版本的更新。

可选的,还包括解压缩单元,

所述解压缩单元,用于当第一文件属于压缩文件时,则对所述第一文件进行解压缩处理;其中,所述第一文件为所述目标脚本中包含的任意一个文件。

可选的,还包括获取单元和判断单元,

所述获取单元,用于接收用户输入的查询指令,获取所述svn端版本号对应的差异文件;

所述判断单元,用于判断所述变更文件与所述差异文件是否一致;

若不一致,则触发所述第二处理单元,所述第二处理单元还用于重新从所述svn端拷贝并执行目标脚本,并将生成的变更文件中的数据保存至所述差异记录文件中,完成本地端编译版本的更新。

由上述技术方案可以看出,读取svn端的版本控制文件,得到svn端版本号;在本地端设置有差异记录文件,判断差异记录文件中是否记录有本地端版本号;当差异记录文件中没有本地端版本号的记录信息时,则说明本地端的编译版本还未进行过更新,此时,可以从svn端拷贝并执行目标脚本,并将所述目标脚本存储于所述差异记录文件中,完成本地端编译版本的更新;当差异记录文件中记录有本地端版本号时,则说明本地端的编译版本在此之前已经进行过更新,此时可以判断本地端版本号与svn端版本号是否一致;若不一致,则说明需要对本地端的编译版本进行更新,此时,可以从svn端拷贝并执行目标脚本,并将生成的变更文件中的数据保存至所述差异记录文件中,完成本地端编译版本的更新。可见,该过程中本地端可以自动完成编译版本的更新,有效的避免了因人工操作不当引起的问题,提升了本地端编译版本更新的工作效率和安全性。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种编译版本自动更新的方法的流程图;

图2为本发明实施例提供的一种编译版本自动更新的装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

接下来,详细介绍本发明实施例所提供的一种编译版本自动更新的方法。图1为本发明实施例提供的一种编译版本自动更新的方法的流程图,该方法包括:

s101:读取svn端的版本控制文件,得到svn端版本号。

研发成员可以通过commit命令,完成对svn端编译环境的更新,也即对编译版本进行更新。在svn端更新编译版本时,会建立相应的版本控制文件和自动更新脚本文件。

其中,版本控制文件可以用于记录svn端编译环境的版本号,可以将其简称为svn端版本号。自动更新脚本文件可以用于存储与svn端版本号对应的目标脚本。

本地端可以通过读取svn端的版本控制文件,获知svn端版本号,以便于后续操作中,可以依据svn端版本号,判断本地端编译版本是否需要更新。

s102:判断差异记录文件中是否记录有本地端版本号。

在本地端编译版本进行更新时,可以建立差异记录文件,在该差异记录文件中可以记录有本地端编译版本对应的脚本文件。

当差异记录文件中没有记录本地端版本号时,则说明本地端还未进行过编译版本的更新,此时可以,执行s103;

当差异记录文件中记录有本地端版本号时,则可以获取本地端版本号,并执行s104。

s103:从所述svn端拷贝并执行目标脚本,并将所述目标脚本存储于所述差异记录文件中,完成本地端编译版本的更新。

本地端可以依据svn自有的export命令进行目标脚本从svn端向本地端的传递。

在本地端执行目标脚本时,会生成本地端版本号记录文件和svn端版本号记录文件。

其中,本地端版本号记录文件可以用于记录本地端版本号;svn端版本号记录文件可以用于记录svn端版本号。这两个文件是进行增量更新时的中间文件,依据这两个版本号,可以获取到版本间的差异数据。当本地端完成编译版本的更新后,这两个文件会被移除。

在本地端第一次进行编译版本的更新时,由于本地端的差异记录文件中并未记录有原来版本对应的脚本文件,因此,在第一次更新本地端的编译版本时,则可以将目标脚本存储于差异记录文件中。

s104:判断所述本地端版本号与所述svn端版本号是否一致。

当本地端版本号与svn端版本号一致时,则在本地端无需进行编译版本的更新。

当本地端版本号与svn端版本号不一致时,此时需要对本地端进行编译版本的更新,即执行s105。

s105:从所述svn端拷贝并执行目标脚本,并将生成的变更文件中的数据保存至所述差异记录文件中,完成本地端编译版本的更新。

在本地端执行目标脚本时,可以生成相应的变更文件,在该变更文件中记录有本地端原有的编译版本对应的脚本文件与更新后的编译版本对应的脚本文件之间的差异数据。

当本地端并非第一次进行编译版本的更新时,此时本地端的差异记录文件中会记录有本地端原有的编译版本对应的脚本文件,因此,在更新本地端的编译版本时,则可以直接将生成的变更文件中的数据存储至差异记录文件中即可,无需再将完整的目标脚本存储,减少了因为完全拷贝而需要等待的时间,进一步提升了本地端编译版本更新的处理速度。

由上述技术方案可以看出,读取svn端的版本控制文件,得到svn端版本号;在本地端设置有差异记录文件,判断差异记录文件中是否记录有本地端版本号;当差异记录文件中没有本地端版本号的记录信息时,则说明本地端的编译版本还未进行过更新,此时,可以从svn端拷贝并执行目标脚本,并将所述目标脚本存储于所述差异记录文件中,完成本地端编译版本的更新;当差异记录文件中记录有本地端版本号时,则说明本地端的编译版本在此之前已经进行过更新,此时可以判断本地端版本号与svn端版本号是否一致;若不一致,则说明需要对本地端的编译版本进行更新,此时,可以从svn端拷贝并执行目标脚本,并将生成的变更文件中的数据保存至所述差异记录文件中,完成本地端编译版本的更新。可见,该过程中本地端可以自动完成编译版本的更新,有效的避免了因人工操作不当引起的问题,提升了本地端编译版本更新的工作效率和安全性。

从svn端向本地端传递目标脚本时,对于一些特殊文件,例如软链接文件,在传递之前会先对该文件进行压缩处理,然后再从svn端export到本地端,并在本地端进行解压缩处理。需要说明的是,对于普通文件不需要做压缩处理直接export到本地端即可。

以目标脚本中包含的任意一个文件即第一文件为例,当第一文件属于压缩文件时,则说明第一文件为目标脚本中的特殊文件,则需要对所述第一文件进行解压缩处理。

为了检验是够顺利完成了本地端编译版本的更新,可以对该更新结果进行检查。具体的,可以接收用户输入的查询指令,获取所述svn端版本号对应的差异文件。

差异文件可以用于存储svn端原先的编译版本与更新后的编译版本之间的差异数据。

查询指令可以是用于获取差异文件的指令。

通过判断所述变更文件与所述差异文件是否一致,可以确认本地端编译版本的更新是否顺利完成。

当变更文件与所述差异文件一致时,则说明本地端编译版本的更新已经顺利完成,则可以结束操作;当变更文件与所述差异文件不一致时,则说明本地端编译版本的更新尚未完成,则可以重新从所述svn端拷贝并执行目标脚本,并将生成的变更文件中的数据保存至所述差异记录文件中,完成本地端编译版本的更新。

图2为本发明实施例提供的一种编译版本自动更新的装置的结构示意图,包括得到单元21、第一判断单元22、第一处理单元23、第二判断单元24和第二处理单元25,

所述得到单元21,用于读取svn端的版本控制文件,得到svn端版本号;其中,所述svn端版本号有其对应的目标脚本。

所述第一判断单元22,用于判断差异记录文件中是否记录有本地端版本号。

若否,则触发所述第一处理单元23,所述第一处理单元23,用于从所述svn端拷贝并执行目标脚本,并将所述目标脚本存储于所述差异记录文件中,完成本地端编译版本的更新。

若是,则触发所述第二判断单元24,所述第二判断单元24,用于判断所述本地端版本号与所述svn端版本号是否一致。

若不一致,则触发所述第二处理单元25,所述第二处理单元25,用于从所述svn端拷贝并执行目标脚本,并将生成的变更文件中的数据保存至所述差异记录文件中,完成本地端编译版本的更新。

可选的,还包括解压缩单元,

所述解压缩单元,用于当第一文件属于压缩文件时,则对所述第一文件进行解压缩处理;其中,所述第一文件为所述目标脚本中包含的任意一个文件。

可选的,还包括获取单元和判断单元,

所述获取单元,用于接收用户输入的查询指令,获取所述svn端版本号对应的差异文件;

所述判断单元,用于判断所述变更文件与所述差异文件是否一致;

若不一致,则触发所述第二处理单元,所述第二处理单元还用于重新从所述svn端拷贝并执行目标脚本,并将生成的变更文件中的数据保存至所述差异记录文件中,完成本地端编译版本的更新。

图2所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,读取svn端的版本控制文件,得到svn端版本号;在本地端设置有差异记录文件,判断差异记录文件中是否记录有本地端版本号;当差异记录文件中没有本地端版本号的记录信息时,则说明本地端的编译版本还未进行过更新,此时,可以从svn端拷贝并执行目标脚本,并将所述目标脚本存储于所述差异记录文件中,完成本地端编译版本的更新;当差异记录文件中记录有本地端版本号时,则说明本地端的编译版本在此之前已经进行过更新,此时可以判断本地端版本号与svn端版本号是否一致;若不一致,则说明需要对本地端的编译版本进行更新,此时,可以从svn端拷贝并执行目标脚本,并将生成的变更文件中的数据保存至所述差异记录文件中,完成本地端编译版本的更新。可见,该过程中本地端可以自动完成编译版本的更新,有效的避免了因人工操作不当引起的问题,提升了本地端编译版本更新的工作效率和安全性。

以上对本发明实施例所提供的一种编译版本自动更新的方法与装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1