一种版本比对方法和装置、家电设备、网络设备与流程

文档序号:16997159发布日期:2019-03-02 01:27阅读:270来源:国知局
一种版本比对方法和装置、家电设备、网络设备与流程

本发明涉及计算机技术领域,具体而言,涉及一种版本比对方法和装置、家电设备、网络设备。



背景技术:

目前,hmi(humanmachineinterface,人机接口)组态软件,大多都是在备份项目工程文件后,选择打开已备份的项目工程文件,以实现对版本的管理。

用户一般仅能通过简单的注释去了解项目工程文件各版本之间的差异,这种注释方式对用户而言可读性不强。即,现有的版本管理中,各版本之间的差异是由程序人员自己在程序中进行批注,例如,在程序编写的时候,对原版本和新版本的差异进行注释,这样使得用户在使用的时候,就通过这些简单的注释去了解不同版本之间的差异,且因为是文字注释的方式,可读性不是很高,需要程序人员手动注释,自动化程序也不高。

针对现有的版本对比中所存在的自动化程度不强、对比结果可读性不强的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种版本比对方法和装置、家电设备、网络设备,以达到提升版本对比的自动化程度和对比结果的可读性的技术效果。

一方面,提供了一种版本比对方法,包括:

获取用户选择的目标程序的第一版本的工程文件和第二版本的工程文件;

对所述第一版本的工程文件和第二版本的工程文件进行差异化对比,得到差异对比结果;

将所述差异对比结果按照预设显示转换规则,进行显示。

在一个实施方式中,对所述第一版本的工程文件和第二版本的工程文件进行差异化对比,得到差异对比结果,包括:

调用差异解析模块,对所述第一版本的工程文件和第二版本的工程文件进行差异化对比,得到差异对比结果。

在一个实施方式中,所述差异解析模块为以下形式之一:目标程序的一部分、插件的形式集成在所述目标程序中、第三方的版本控制系统。

在一个实施方式中,对所述第一版本的工程文件和第二版本的工程文件进行差异化对比,得到差异对比结果,包括:

将所述第一版本的工程文件拆分为多个版块,将所述第二版本的工程文件拆分为多个版块;

调用预设的版块对比逻辑,对所述第一版本的工程文件和第二版本的工程文件,对各版块进行差异化对比,其中,不同版块对应不同的版块对比逻辑;

将各版块的差异化对比结果,作为第一版本的工程文件和第二版本的工程文件的差异化对比结果。

在一个实施方式中,将所述差异对比结果按照预设显示转换规则,进行显示,包括:

在差异对比结果为数量上的差异的情况下,通过差异对象名称加差异数量的方式进行显示;

在差异对比结果为显示内容上的差异的情况下,通过显示差异对象的不同展示界面的方式进行显示。

在一个实施方式中,将所述差异对比结果按照预设显示转换规则,进行显示,包括:

确定所述差异对比结果中差异对象的类型,其中,差异对象包括以下至少之一:窗体、元件、变量、算法;

调用确定的差异对象的类型对应的显示转换规则,对所述差异对比结果中的差异对象进行解析;

对解析结果进行显示。

在一个实施方式中,所述目标程序为hmi组态软件。

在一个实施方式中,所述第一版本的工程文件为当前已打开的目标程序的版本对应的工程文件。

在一个实施方式中,在获取用户选择的目标程序的第一版本的工程文件和第二版本的工程文件,之前,所述方法还包括:

接收用户在操作界面上的点选操作;

根据所述点选操作,确定用户选择的第一版本和第二版本;

其中,在所述操作界面上以表格的形式显示所述目标程序的不同版本。

在一个实施方式中,对所述第一版本的工程文件和第二版本的工程文件进行差异化对比,得到差异对比结果,包括:

在工程文件为代码的情况下,通过比对各版块的代码差异,生成差异对比结果;

在工程文件为项目文件的情况下,通过项目文件在第一版本和第二版本的运行情况生成中间代码,并对中间代码进行对比,生成差异对比结果。

另一方面,提供了一种版本比对装置,包括:

获取模块,用于获取用户选择的目标程序的第一版本的工程文件和第二版本的工程文件;

对比模块,用于对所述第一版本的工程文件和第二版本的工程文件进行差异化对比,得到差异对比结果;

显示模块,用于将所述差异对比结果按照预设显示转换规则,进行显示。

在一个实施方式中,所述对比模块具体用于调用差异解析模块,对所述第一版本的工程文件和第二版本的工程文件进行差异化对比,得到差异对比结果。

在一个实施方式中,所述差异解析模块为以下形式之一:目标程序的一部分、插件的形式集成在所述目标程序中、第三方的版本控制系统。

在一个实施方式中,所述对比模块包括:

拆分单元,用于将所述第一版本的工程文件拆分为多个版块,将所述第二版本的工程文件拆分为多个版块;

调用单元,用于调用预设的版块对比逻辑,对所述第一版本的工程文件和第二版本的工程文件,对各版块进行差异化对比,其中,不同版块对应不同的版块对比逻辑;

生成单元,用于将各版块的差异化对比结果,作为第一版本的工程文件和第二版本的工程文件的差异化对比结果。

在一个实施方式中,所述显示模块包括:

第一显示单元,用于在差异对比结果为数量上的差异的情况下,通过差异对象名称加差异数量的方式进行显示;

第二显示单元,用于在差异对比结果为显示内容上的差异的情况下,通过显示差异对象的不同展示界面的方式进行显示。

在一个实施方式中,所述显示模块将所述差异对比结果按照预设显示转换规则,进行显示,包括:

确定所述差异对比结果中差异对象的类型,其中,差异对象包括以下至少之一:窗体、元件、变量、算法;

调用确定的差异对象的类型对应的显示转换规则,对所述差异对比结果中的差异对象进行解析;

对解析结果进行显示。

在一个实施方式中,所述目标程序为hmi组态软件。

在一个实施方式中,所述第一版本的工程文件为当前已打开的目标程序的版本对应的工程文件。

在一个实施方式中,上述装置还包括:

接收模块,用于在获取用户选择的目标程序的第一版本的工程文件和第二版本的工程文件之前,接收用户在操作界面上的点选操作;

确定模块,用于根据所述点选操作,确定用户选择的第一版本和第二版本;

其中,在所述操作界面上以表格的形式显示所述目标程序的不同版本。

在一个实施方式中,所述对比模块具体用于:在工程文件为代码的情况下,通过比对各版块的代码差异,生成差异对比结果;在工程文件为项目文件的情况下,通过项目文件在第一版本和第二版本的运行情况生成中间代码,并对中间代码进行对比,生成差异对比结果。

又一方面,提供了一种家电设备,包括:上述的版本比对装置。

又一方面,提供了一种网络设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。

又一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。

在上述实施例中,获取用户选择的目标程序的第一版本的工程文件和第二版本的工程文件,对第一版本的工程文件和第二版本的工程文件进行差异化对比,得到差异对比结果,并将差异对比结果按照预设显示转换规则,进行显示。通过上述方案实现了版本差异化的自动化对比,且结果按照预设的显示转换规则进行显示,可以提高用户的可读性,达到了自动化进行版本差异化对比,和提高用户可读性的技术效果。

附图说明

构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的版本比对方法的方法流程图;

图2是根据本发明实施例的操作界面示意图;

图3是根据本发明实施例的版本对比的另一方法流程图;

图4是根据本发明实施例的版本对比的又一方法流程图;

图5是根据本发明实施例的版本比对装置的结构框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。

考虑到现有的版本对比一般都是采用对版本内容进行注释的方式,自动化程度比较低,且用户可读性低。为了解决这些问题,可以提出一种能够实现自动对比、解析两个版本之间存在的差异的版本管理方案。例如,可以确定出版本之间的差异为:增加一个窗体、某个窗体上增加或减少了元件等,并将这些信息以用户容易理解的方式进行展示。

根据本发明实施例,提供了一种短信息的发送的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

如图1所示,本申请提供了一种版本比对方法,可以包括如下步骤:

步骤101:获取用户选择的目标程序的第一版本的工程文件和第二版本的工程文件;

即,例如目标程序有版本1.0、版本2.0、版本3.0,用户选择了对版本2.0、版本3.0进行差异化对比,那么就可以获取版本2.0的工程文件和版本3.0的工程文件,作为待比较的文件。

为了使得用户便于选择要对比的版本,用户可根据需要创建不同的版本,不同的版本以表格的形式显示在操作界面上,用户可以选择打开版本或者与当前版本进行对比,以实现对项目工程的版本管理。

相应的,可以接收用户在操作界面上的点选操作;根据所述点选操作,确定用户选择的第一版本和第二版本;其中,在所述操作界面上以表格的形式显示所述目标程序的不同版本。

步骤102:对所述第一版本的工程文件和第二版本的工程文件进行差异化对比,得到差异对比结果;

为了实现对比,可以设置一个差异解析模块,在需要进行不同版本的工程文件对比的时候,可以调用该差异解析模块进行对比。即,可以调用差异解析模块,对所述第一版本的工程文件和第二版本的工程文件进行差异化对比,得到差异对比结果。

上述的差异解析模块可以但不限于是一下形式:目标程序的一部分、插件的形式集成在所述目标程序中、第三方的版本控制系统。

具体的,在对比的时候,考虑到一个目标程序是包括多个版块,对不同的版块设置不同的对比逻辑,才能实现对不同版块更为准确的差异化对比。在一个实施方式中,对第一版本的工程文件和第二版本的工程文件进行差异化对比,得到差异对比结果,可以包括:

s1:将所述第一版本的工程文件拆分为多个版块,将所述第二版本的工程文件拆分为多个版块;

s2:调用预设的版块对比逻辑,对所述第一版本的工程文件和第二版本的工程文件,对各版块进行差异化对比,其中,不同版块对应不同的版块对比逻辑;

s3:将各版块的差异化对比结果,作为第一版本的工程文件和第二版本的工程文件的差异化对比结果。

即,如果需要对第一类版块(例如:软件名称)进行对比,那么就调用该版块的对比逻辑就行对比。

步骤103:将所述差异对比结果按照预设显示转换规则,进行显示。

为了使得差异化对比结果可以让用户简单地看明白,即,提高结果的可读性,可以对差异化比对结果设置一些显示转换规则,例如,遇到数量变化的如何显示,遇到内容变化的如何显示等等,以提升用户的可读性。

基于此,将所述差异对比结果按照预设显示转换规则,进行显示,可以包括:在差异对比结果为数量上的差异的情况下,通过差异对象名称加差异数量的方式进行显示;在差异对比结果为显示内容上的差异的情况下,通过显示差异对象的不同展示界面的方式进行显示。

然而,值得注意的是,上述所列举的显示转换规则仅是一种示例性描述,在实际实现的时候,还可以采用其它的显示转换规则,只要能方面用户理解的都可以,本申请对此不作限定。

上述的差异对象可以包括但不限于以下至少之一:窗体、元件、变量、算法。上述的目标程序可以是hmi组态软件。上述的第一版本的工程文件可以是当前已打开的目标程序的版本对应的工程文件,这样可以在打开当前目标程序的情况下,选择与某个版本的工程文件进行对比。

在实际实现的时候,工程文件可以是代码也可以是项目文件,具体的,在工程文件为代码的情况下,可以通过比对各板块的代码差异来生成差异对比结果;在工程文件为项目文件的情况下,可以通过项目文件在两个版本的运行情况生成中间代码,然后,再对中间代码进行编译比对,以生成注释内容,即,差异对比结果。

下面结合一个具体实施例对上述版本对比方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。

为了解决现有的无法自动化对比和解析版本之间的差异,且差异显示结果可读性不强的问题。在本例中,考虑到可以对版本进行自动化差异对比,并将项目工程文件中数据上的差异转化用户便于理解的显示内容,可读性强的表征信息能理解的差异说明信息。

在本例中,hmi组态软件可以通过搭建项目的方式生成一个可在触摸屏上运行的应用程序,在用户使用hmi组态软件的过程中,可以通过版本管理的功能对项目工程文件进行版本控制,以便对不同版本的应用程序进行差异对比,且使得用户可以直观地了解不同版本之间的差异。进一步的,可以设置一个修改窗口,用户可以基于该修改窗口对任一创建过的版本就行修改。具体的,可以通过差异解析模块对版本差异内容进行解析,返回差异信息;版本管理的所有操作都可以在hmi组态软件本身上完成,通过版本管理功能实现对项目工程的版本管理。

如图2所示,用户可根据需要创建不同的版本,不同的版本以表格的形式显示在操作界面上,用户可以选择打开版本或者与当前版本进行对比,以实现对项目工程的版本管理。

如图3所示,当用户查看版本差异时,系统可以自动读取需要查看的版本的项目工程文件,然后,通过差异对比模块进行解析。

对于hmi组态软件而言,不同版本可能存在窗体、元件、变量、算法等数量或者具体内容上的差异,差异解析模块可以在读取项目工程文件的过程中,对于每种差异情况进行解析,返回正确的差异信息。

差异解析模块可以位于hmi组态软件本身中,也可以以插件的形式集成在hmi组态软件中。差异解析模块需要具有对于hmi组态软件本身不同版块的判断机制,对于不同版块中的内容有单独的逻辑进行处理,以便确定出不同版本之间的差异,并将代码中的差异转换为用户较为容易理解的形式。

在差异解析的过程中,可以是边读取项目工程文件边解析的方式,也可以是读取完整个项目工程文件之后,再进行解析。在实现的时候,如果选择读取完项目工程文件之后,再进行解析,就需要将读取到的信息保存到相应的对象中,通过对象数量或者属性的变化来返回差异信息。

如图4所示,在实际实现的过程中,也可以借助第三方的版本控制系统(git、svn等)作为差异解析模块来解析不同版本的项目工程文件代码上的差异。对于hmi组态软件而言,仅需要将返回的代码差异转化为供用户查看的差异信息即可。整个过程需要先将当前打开的项目工程进行保存备份,然后借助版本控制系统与需要对比的版本进行代码对比,在差异对比完成之后,可以删除备份文件。

基于同一发明构思,本发明实施例中还提供了一种版本比对装置,如下面的实施例所述。由于版本比对装置解决问题的原理与版本比对方法相似,因此版本比对装置的实施可以参见版本比对方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图5是本发明实施例的版本比对装置的一种结构框图,如图5所示,可以包括:获取模块501、对比模块502和显示模块503,下面对该结构进行说明。

获取模块501,用于获取用户选择的目标程序的第一版本的工程文件和第二版本的工程文件;

对比模块502,用于对所述第一版本的工程文件和第二版本的工程文件进行差异化对比,得到差异对比结果;

显示模块503,用于将所述差异对比结果按照预设显示转换规则,进行显示。

在一个实施方式中,对比模块502具体可以用于调用差异解析模块,对所述第一版本的工程文件和第二版本的工程文件进行差异化对比,得到差异对比结果。

在一个实施方式中,上述差异解析模块可以但不限于是以下形式之一:目标程序的一部分、插件的形式集成在所述目标程序中、第三方的版本控制系统。

在一个实施方式中,对比模块502可以包括:拆分单元,用于将所述第一版本的工程文件拆分为多个版块,将所述第二版本的工程文件拆分为多个版块;调用单元,用于调用预设的版块对比逻辑,对所述第一版本的工程文件和第二版本的工程文件,对各版块进行差异化对比,其中,不同版块对应不同的版块对比逻辑;生成单元,用于将各版块的差异化对比结果,作为第一版本的工程文件和第二版本的工程文件的差异化对比结果。

在一个实施方式中,显示模块503可以包括:第一显示单元,用于在差异对比结果为数量上的差异的情况下,通过差异对象名称加差异数量的方式进行显示;第二显示单元,用于在差异对比结果为显示内容上的差异的情况下,通过显示差异对象的不同展示界面的方式进行显示。

在一个实施方式中,上述差异对象可以包括但不限于以下至少之一:窗体、元件、变量、算法。

在一个实施方式中,上述目标程序可以是hmi组态软件。

在一个实施方式中,上述第一版本的工程文件可以是当前已打开的目标程序的版本对应的工程文件。

在一个实施方式中,上述版本对比装置还可以包括:接收模块,用于在获取用户选择的目标程序的第一版本的工程文件和第二版本的工程文件之前,接收用户在操作界面上的点选操作;确定模块,用于根据所述点选操作,确定用户选择的第一版本和第二版本;其中,在所述操作界面上以表格的形式显示所述目标程序的不同版本。

在一个实施方式中,上述对比模块502具体可以用于:在工程文件为代码的情况下,通过比对各版块的代码差异,生成差异对比结果;在工程文件为项目文件的情况下,通过项目文件在第一版本和第二版本的运行情况生成中间代码,并对中间代码进行对比,生成差异对比结果。

在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。

在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。

从以上的描述中,可以看出,本发明实施例实现了如下技术效果:获取用户选择的目标程序的第一版本的工程文件和第二版本的工程文件,对第一版本的工程文件和第二版本的工程文件进行差异化对比,得到差异对比结果,并将差异对比结果按照预设显示转换规则,进行显示。通过上述方案实现了版本差异化的自动化对比,且结果按照预设的显示转换规则进行显示,可以提高用户的可读性,达到了自动化进行版本差异化对比,和提高用户可读性的技术效果。

尽管本申请内容中提到不同的具体实施例,但是,本申请并不局限于必须是行业标准或实施例所描述的情况等,某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、处理、输出、判断方式等的实施例,仍然可以属于本申请的可选实施方案范围之内。

虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。

上述实施例阐明的装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的实施方式包括这些变形和变化而不脱离本申请。

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