CN116069383A - 一种图形化编程文件的版本管理方法、装置及设备 - Google Patents
一种图形化编程文件的版本管理方法、装置及设备 Download PDFInfo
- Publication number
- CN116069383A CN116069383A CN202211722494.5A CN202211722494A CN116069383A CN 116069383 A CN116069383 A CN 116069383A CN 202211722494 A CN202211722494 A CN 202211722494A CN 116069383 A CN116069383 A CN 116069383A
- Authority
- CN
- China
- Prior art keywords
- version
- file
- storage object
- information
- character
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 45
- 238000013500 data storage Methods 0.000 claims abstract description 104
- 238000000034 method Methods 0.000 claims abstract description 51
- 230000004048 modification Effects 0.000 claims abstract description 39
- 238000012986 modification Methods 0.000 claims abstract description 39
- 238000010276 construction Methods 0.000 claims abstract description 3
- 238000004590 computer program Methods 0.000 claims description 20
- 230000002194 synthesizing effect Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000009414 blockwork Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- 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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种图形化编程文件的版本管理方法、装置及设备,涉及文件版本管理技术领域。该方法包括:获取所述图形化编程文件的编辑信息,所述编辑信息包括角色的新建和/或修改;根据所述编辑信息,生成角色存储对象和/或数据存储对象,所述角色存储对象中记录有新建的角色的原始数据,所述数据存储对象中记录有基于角色的修改内容生成的差分数据补丁;根据所述角色存储对象和/或所述数据存储对象,以及角色索引信息,生成文件版本提交信息,可以有效减少了所需要保存的图形编程文件的版本数据,提高图形化编程文件的保存效率,并提高了图形化编程文件中追踪效率和准确率。
Description
技术领域
本申请涉及文件版本管理技术领域,尤其涉及一种图形化编程文件的版本管理方法、装置及设备。
背景技术
图形化编程是将程序指令变为一个个“积木块”,使用者无需敲击代码或者背诵任何编程指令,只需要将积木块拖拽并连接在一起,就可以方便的进行编程,从而快速制作出动画、游戏、交互程序等。因此,使用简单、支持所有编程知识、支持复杂数据结构,支持面向对象编程和模块编程的图形化编程,通过简单开发就可以实现更多的功能并入到图形化编程中,使得更多的程序开发人员使用图形化编程来实现代码的功能,简化和提高软件开发效率。
然而,目前图形化编程中大多缺少对图形化编程文件的版本管理,或者仅是采用线性管理的方法对图形化编程文件进行版本管理,在每次对图形化编程文件进行修改比如移动一下某个积木块时,都需要完整的序列化修改后的图形化编程文件的副本保存到数据库中,存在文件保存效率低、数据冗余大的问题。
发明内容
本申请实施例提供了一种图形化编程文件的版本管理方法、装置及设备,可以有效减少了所需要保存的图形编程文件的版本数据,提高图形化编程文件的保存效率,并提高了图形化编程文件中追踪效率和准确率。
第一方面,本申请提供一种图形化编程文件的版本管理方法,包括:获取上述图形化编程文件的编辑信息,上述编辑信息包括角色的新建和/或修改;根据上述编辑信息,生成角色存储对象和/或数据存储对象,上述角色存储对象中记录有新建的角色的原始数据,上述数据存储对象中记录有基于角色的修改内容生成的差分数据补丁;根据上述角色存储对象和/或上述数据存储对象,以及角色索引信息,生成文件版本提交信息,上述角色索引信息中包括角色的索引地址。
本申请实施例通过获取图形化编程文件的编辑信息,并根据该编辑信息生成用于记录有新建的角色的原始数据角色存储对象和/或记录有基于角色的修改内容生成的差分数据补丁的数据存储对象,再根据该角色存储对象和数据存储对象,以及图形化编程文件的角色索引信息,生成文件版本提交信息,并不需要将整个图形化编程文件进行保存,而是仅保存记录基于新建角色生成的角色存储对象和/或基于修改角色生成的数据存储对象,以及图形化编程文件的角色索引信息生成的文件版本提交信息,大大减少了所需要保存的图形编程文件的版本数据,并通过增量式的数据存储对象记录角色的变化,可以快速并有效地追踪图形化编程文件中角色的修改,提高了图形化编程文件追踪效率和准确率,用户使用体验更好。
在第一方面提供的一个可选方式中,上述根据上述编辑信息,生成角色存储对象和/或数据存储对象中,包括:
当上述编辑信息为角色的修改时,根据差分算法确定角色的修改内容,并生成差分数据补丁;
获取被修改的角色的版本标识信息和索引地址,上述版本标识信息包括角色的原始版本标识和修改版本标识;
根据上述版本标识信息、上述索引地址和上述差分数据补丁,生成上述数据存储对象。
在第一方面提供的另一个可选方式中,上述文件版本提交信息包括版本数据链表,上述根据上述角色存储对象和/或上述数据存储对象,以及角色索引信息,生成版本提交信息中,包括:
获取上述数据存储对象中的角色的索引地址;
根据上述数据存储对象中的角色的索引地址,确定上述数据存储对象所属图形化编程文件的角色索引树地址;
根据上述角色索引树地址,确定上述数据存储对象所属的图形化编程文件的当前版本信息;
根据上述当前版本信息,确定修改版本信息;
根据上述修改版本信息更新上述版本提交链表。
在第一方面提供的另一个可选方式中,上述文件版本提交信息包括文件提交记录,上述根据上述角色存储对象和/或上述数据存储对象,以及角色索引信息,生成版本提交信息中,包括:
根据上述角色存储对象和上述角色索引信息,生成文件提交记录;或:
根据上述数据存储对象和上述角色索引信息,生成文件提交记录;或:
根据上述角色存储对象、上述数据存储对象和上述角色索引信息,生成文件提交记录。
在第一方面提供的另一个可选方式中,在上述根据上述角色存储对象和/或上述数据存储对象,以及角色索引信息,生成文件版本提交信息之后,还包括:
向云服务器发送上述文件版本提交信息,上述云服务器根据上述文件版本提交信息中的角色索引信息,将上述文件版本提交信息保存至上述角色索引信息对应的图形化编程文件中。
在第一方面提供的另一个可选方式中,在上述根据上述角色存储对象和/或上述数据存储对象,以及角色索引信息,生成文件版本提交信息之后,还包括:
获取文件查看请求信息,上述文件查看请求信息中包括第一版本标识,上述第一版本标识为请求查看的图形化编程文件的版本标识;
根据上述第一版本标识,获取上述图形化编程文件最后保存的文件版本提交信息;
根据上述文件版本提交信息,获取上述第一版本标识对应的图形化编程文件的角色数据,上述角色数据包括角色存储对象和数据存储对象;
根据上述角色数据,在图形化编程工具中合成并显示上述第一版本标识对应的图形化编程文件。
在第一方面提供的另一个可选方式中,在上述根据上述角色存储对象和/或上述数据存储对象,以及角色索引信息,生成文件版本提交信息之后,还包括:
获取版本回溯请求信息,上述版本回溯请求信息中包括第二版本标识,上述第二版本标识为请求回溯的图形化编程文件的版本标识;
根据差分算法,确定上述第二版本标识对应的图形化编程文件和第三版本标识对应的图形化编程文件的差分数据,上述第三版本标识为最后保存的图形化编程文件的版本标识;
根据确定的差分数据,还原所述第二版本标识对应的图形化编程文件,并生成版本回溯记录,上述版本回溯记录用于记录上述图形化编程文件的回溯操作。
第二方面,本申请提供一种图形化编程文件的版本管理装置,包括:
编辑信息获取单元,用于获取上述图形化编程文件的编辑信息,上述编辑信息包括角色的新建和/或修改;
存储对象生成单元,用于根据上述编辑信息,生成角色存储对象和/或数据存储对象,上述角色存储对象中记录有新建的角色的原始数据,上述数据存储对象中记录有基于角色的修改内容生成的差分数据补丁;
文件版本提交信息生成单元,用于根据上述角色存储对象和/或上述数据存储对象,以及角色索引信息,生成文件版本提交信息,上述角色索引信息中包括角色的索引地址。
在第二方面提供的一个可选方式中,上述存储对象生成单元,用于:
当上述编辑信息为角色的修改时,根据差分算法确定角色的修改内容,并生成差分数据补丁;
获取被修改的角色的版本标识信息和索引地址,上述版本标识信息包括角色的原始版本标识和修改版本标识;
根据上述版本标识信息、上述索引地址和上述差分数据补丁,生成上述数据存储对象。
在第二方面提供的另一个可选方式中,上述文件版本提交信息包括版本数据链表,上述文件版本提交信息生成单元,用于:
获取上述数据存储对象中的角色的索引地址;
根据上述数据存储对象中的角色的索引地址,确定上述数据存储对象所属图形化编程文件的角色索引树地址;
根据上述角色索引树地址,确定上述数据存储对象所属的图形化编程文件的当前版本信息;
根据上述当前版本信息,确定修改版本信息;
根据上述修改版本信息更新上述版本提交链表。
在第二方面提供的另一个可选方式中,上述文件版本提交信息包括文件提交记录,上述文件版本提交信息生成单元,还用于:
根据上述角色存储对象和上述角色索引信息,生成文件提交记录;或:
根据上述数据存储对象和上述角色索引信息,生成文件提交记录;或:
根据上述角色存储对象、上述数据存储对象和上述角色索引信息,生成文件提交记录。
在第二方面提供的另一个可选方式中,上述装置还包括:
文件版本提交信息发送单元,用于向云服务器发送上述文件版本提交信息,上述云服务器根据上述文件版本提交信息中的角色索引信息,将上述文件版本提交信息保存至上述角色索引信息对应的图形化编程文件中。
在第二方面提供的另一个可选方式中,上述装置还包括:
文件查看请求信息获取单元,用于获取文件查看请求信息,上述文件查看请求信息中包括第一版本标识,上述第一版本标识为请求查看的图形化编程文件的版本标识;
文件版本提交信息获取单元,用于根据上述第一版本标识,获取上述图形化编程文件最后保存的文件版本提交信息;
角色数据获取单元,用于根据上述文件版本提交信息,获取上述第一版本标识对应的图形化编程文件的角色数据,上述角色数据包括角色存储对象和数据存储对象;
图形化编程文件合成显示单元,用于根据上述角色数据,在图形化编程工具中合成并显示上述第一版本标识对应的图形化编程文件。
在第二方面提供的另一个可选方式中,上述装置还包括:
版本回溯请求信息获取单元,用于获取版本回溯请求信息,上述版本回溯请求信息中包括第二版本标识,上述第二版本标识为请求回溯的图形化编程文件的版本标识;
差分数据确定单元,用于根据差分算法,确定上述第二版本标识对应的图形化编程文件和第三版本标识对应的图形化编程文件的差分数据,上述第三版本标识为最后保存的图形化编程文件的版本标识;
版本回溯单元,用于根据确定的差分数据,还原所述第二版本标识对应的图形化编程文件,并生成版本回溯记录,上述版本回溯记录用于记录上述图形化编程文件的回溯操作。
第三方面,本申请提供一种图形化编程文件的版本管理设备,包括处理器、存储器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如第一方面或第一方面的任意可选方式上述的方法。
第四方面,本申请提供一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如第一方面或第一方面的任意可选方式上述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在图形化编程文件的版本管理设备上运行时,使得图形化编程文件的版本管理设备执行上述第一方面上述的图形化编程文件的版本管理方法的步骤。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种图形化编程文件的版本管理方法的流程示意图;
图2是本申请实施例提供的一种数据存储对象的数据结构示意图;
图3是本申请实施例提供的一种数据存储对象的生成方法的流程示意图;
图4是本申请实施例提供的一种文件提交记录的数据结构示意图;
图5是本申请实施例提供的一种版本提交链表的更新方法的流程示意图;
图6是本申请实施例提供的一种图形化编程文件的查看方法的流程示意图;
图7是本申请实施例提供的一种图形化编程文件的回溯方法的流程示意图;
图8是本申请实施例提供的一种图形化编程文件的版本管理装置的结构示意图;
图9是本申请实施例提供的一种图形化编程文件的版本管理设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定装置结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的装置、系统、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
还应当理解,在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
在说明本申请实施例提供的一种图形化编程文件的版本管理方法之前,对本申请实施例中涉及的图形化编程的基本概念进行说明。
积木块(Block):图形化编程中最基本的运行单位(Unit),每个角色包含若干个积木块,积木块根据功能分为执行积木块(Execute Block),输出积木块(Output Block),条件积木块(Conditional Block),语句积木块(Statement Block)等,积木块之间可以嵌套形成一个新的积木块。
角色(Target):图形化编程中组合的基本单位(Group),每个图形化编程文件即图形化编程的最终作品中通常包含有数个角色,各个角色之间保持相对独立,拥有自己的积木块数据,角色之间通过消息之间通信。
工作区(Work Space):当前正在编辑的积木块工作区,图形化编程工具中通常只有一个积木块工作区正在编辑。每个角色对应一个工作区,在编辑角色的时候,需要将积木块的数据反序列化为当前正在编辑的积木块工作区,并在该积木块工作区中渲染出被编辑的角色对应的积木块。
图形化编程文件:为图形化编程工具中保存的作品文件,图形化编程文件也可以称为图形化编程作品。
本申请实施例中的图形化编程作品用树状结构来描述,该树状结构中存储有图形化编程作品中的所有角色的索引地址,也即角色索引信息,当保存图形化编程作品时,根据该角色索引信息生成树的哈希值,得到具有唯一哈希值作为索引地址的角色索引树。当该角色索引树对应的图形化编程作品中的角色有新增或删除时,生成新的角色索引树。
请参见图1,图1是本申请实施例提供的一种图形化编程文件的版本管理方法的流程示意图,详述如下:
步骤S101,获取上述图形化编程文件的编辑信息,上述编辑信息包括角色的新建和/或修改。
在本申请实施例中,当新建或打开图形化编程文件时,在图形化编程工具比如scratch的界面显示一积木块工作区,在该积木块工作区中完成角色的新建或修改。由于每个角色对应一个积木块工作区,当对某个角色进行编辑比如用户点击在图形化编程工具的界面中显示的角色列表中的任意一个角色时,需要将该角色中包含的积木块,通过反序列化后显示在当前的积木块工作区中。
用户在当前工作的积木块工作区中,可以新建角色,也可以对已有图形化编程文件的任意打开版本中的角色进行修改,比如调整该角色的积木块的位置、增加或删除积木块,调整各个积木块的参数等操作。
步骤S102,根据上述编辑信息,生成角色存储对象和/或数据存储对象。
本申请实施例中的角色存储对象中记录有新建的角色的原始数据,数据存储对象中记录有基于角色的修改内容生成的差分数据补丁。
在本申请实施例中,当用户使用图形化编程工具新建图形化编程文件时,该图形化编程文件中并无任何角色存在,这时,用户通过新建角色的方式为该图形化编程文件添加角色,在新建角色后,生成角色存储对象,该角色存储对象用于存储信息的角色的原始数据即组成该角色的积木块数据。
在本申请的一些实施例中,为便于追踪每个角色,方便图形化编程文件的版本管理,在新建角色的同时,为每个新建的角色添加索引地址,以便于通过该索引地址追踪不同文件版本中角色的变化情况。
在本申请的另一些实施例中,当用户通过图形化编程工具打开某一版本的图形化编程文件时,该图形化编程文件中至少有一个角色存在,当用户对该图形化编程文件中的至少一个角色进行修改时,在该角色修改完成后,根据该角色的修改内容生成的差分数据补丁,生成数据存储对象。
具体的,请参见图2和图3,图2是本申请实施例提供的一种数据存储对象的数据结构示意图,图3是本申请实施例提供的一种数据存储对象的生成方法的流程示意图,结合图2对如图3所示的步骤进行详细说明,具体如下:
步骤S301,当上述编辑信息为角色的修改时,根据差分算法确定角色的修改内容,并生成差分数据补丁。
在本申请实施例中,当用户在图形化编程工具中对当前打开版本的图形化编程文件中的角色进行修改并保存时,根据diff差分算法确定当前被编辑的角色的修改内容,并生成差分数据补丁。
可以理解的是,当前被编辑的角色的修改内容为用户在当前版本的角色的基础上对该角色进行修改的相关内容,比如新增或删除当前版本中角色的积木块,并基于新增或删除的积木块生成差分数据补丁,该差分数据补丁相当于当前版本角色的增量数据,并不需要保存被编辑的角色对应的角色存储对象,可以有效地减少图形化编程文件的版本数据。
步骤S302,获取被修改的角色的版本标识信息和索引地址,上述版本标识信息包括角色的原始版本标识和修改版本标识。
在本申请实施例中,为了能够快速并准确地追踪被修改的角色的相关内容,记录有基于角色的修改内容生成的差分数据补丁的数据存储对象中需要记录有该被修改角色的所在图形化编程文件中的版本信息,以及该被修改角色的索引地址。
由于角色的修改内容是针对当前被编辑的图形化编程文件中的角色产生的一个增量的数据内容,因此,后面新增的数据存储对象必须依赖前面的数据存储对象,也即后面新增的数据存储对象是在前面的数据存储对象的基础上,加上生成的差分数据补丁,更新得到数据存储对象。
如图2所示,对于索引地址为1的角色的数据存储对象,比如,当其有三个修改版本时,数据存储对象中存储有原始版本标识、修改版本1标识和差分数据补丁1(基于修改版本1和原始版本中角色的修改内容生成的差分数据补丁)、修改版本2标识和差分数据补丁2(基于修改版本2和修改版本1中角色的修改内容生成的差分数据补丁)、……、修改版本N标识和差分数据补丁N(基于修改版本N和修改版本N-1中角色的修改内容生成的差分数据补丁)。
步骤S303,根据上述版本标识信息、上述索引地址和上述差分数据补丁,生成上述数据存储对象。
在本申请实施例中,根据被修改的角色的版本标识信息、索引信息和差分数据补丁,生成如图2所示的数据存储对象。
步骤S103,根据上述角色存储对象和/或上述数据存储对象,以及角色索引信息,生成文件版本提交信息。
在本申请实施例中,角色索引信息中包括角色的索引地址、角色索引树地址,通过角色索引信息可以追溯图形化编程文件中所有角色的修改。
本申请实施例中的文件版本提交信息包括版本提交链表和文件提交记录,该版本提交链表用于存储图形化编程文件的所有版本信息,包括原始版本信息和修改版本信息;该文件提交记录用于记载新建的角色或修改的角色的相关内容,通过该文件提交记录可以查询到对应图形化编程文件中新建的角色的原始数据,和修改的角色的修改内容,从而使得在图形化编程工具中打开修改后的图形化编程文件时,能够根据该文件提交记录将角色反序列显示在对应的积木块工作区中。
本申请实施例中的文件版本提交信息可以保存在本地服务器中,也可以通过云服务器保存,在生成文件版本提交信息后,向云服务器发送上述文件版本提交信息,以使得云服务器根据上述文件版本提交信息中的角色索引信息,将上述文件版本提交信息保存至上述角色索引信息对应的图形化编程文件中,方便后续快速地通过角色索引树地址查找到该图形化编程文件的对应版本。
在本申请的一些实施例中,当图形编程文件中仅新建了一个角色时,获取该角色的原始数据生成角色存储对象,并为新建的角色添加索引地址,同时更新该图形化编程文件的角色索引信息比如将添加的角色的索引地址添加至角色索引树地址中,并更新角色索引树地址,根据角色存储对象和更新后的角色索引信息,生成如图4所示的文件提交记录。
在本申请的另一些实施例中,当图形编程文件中仅对原有的角色进行修改时,获取该角色的修改内容并生成数据存储对象,根据数据存储对象和该角色对应的角色索引信息,生成文件提交记录。
在本申请的另一些实施例中,当图形编程文件中不仅新建了一个角色,且对原有的角色进行修改时,根据上述方法生成角色存储对象和数据存储对象,并更新角色索引树地址后,根据角色存储对象、数据存储对象和角色索引信息,生成文件提交记录。
在本申请实施例中,版本提交链表在新建图形化编程文件时生成,当修改图形化编程文件并保存该图形化编程文件以提交到云服务器时,该版本提交链表会持续更新,将每次提交的修改版本信息添加更新到该版本提交链表中,为了对更新后的版本提交链表进行区分,在将版本修改信息添加更新到版本提交链表中时,通过哈希算法为该版本修改信息生成提交地址,并将该提交地址与对应的版本修改信息同时更新到版本提交链表中,通过该提交地址可以快速地查找到对应版本的图形化编程文件。
请参见图5,图5是本申请实施例提供的一种版本提交链表的更新方法的流程示意图,详述如下:
步骤S501,获取上述数据存储对象中的角色的索引地址。
步骤S502,根据上述数据存储对象中的角色的索引地址,确定上述数据存储对象所属的图形化编程文件的角色索引树地址。
在本申请实施例中,每个修改的角色都对应有一个数据存储对象,在该数据存储对象中同时存储有角色的索引地址,通过该索引地址可以确定该数据存储对象所属的角色索引树,从而确定该数据存储对象中的角色所在图形化编程文件的版本。
步骤S503,根据上述角色索引树地址,确定上述数据存储对象所属的图形化编程文件的当前版本信息。
在本申请实施例中,每个图形化编程文件对应有一个角色索引树,当图形化编程文件中的角色发生变化时,图形化编程文件的版本也相应发生了变化,通过当前正在编辑的图形化编程文件的角色索引树地址,可以确定当前正在编辑的图形化编程文件的版本信息。
步骤S504,根据上述当前版本信息,确定修改版本信息。
在本申请实施例中,在确定当前正在编辑的图形化编程文件的版本信息后,可以根据确定的当前版本信息,确定编辑后保存并提交的图形化编程文件的版本信息,也即修改版本信息。
步骤S505,根据上述修改版本信息更新上述版本提交链表。
在本申请实施例中,在将版本修改信息添加更新到版本提交链表中时,通过哈希算法为该版本修改信息生成提交地址,并将该提交地址与对应的版本修改信息同时更新到版本提交链表中,通过该提交地址可以快速地查找到对应版本的图形化编程文件。
请参见图6,图6是本申请实施例提供的一种图形化编程文件的查看方法的流程示意图,详述如下:
步骤S601,获取文件查看请求信息,上述文件查看请求信息中包括第一版本标识,上述第一版本标识为请求查看的图形化编程文件的版本标识。
在本申请实施例中,当用户在本地服务器或云服务器上点击图形化编程文件的版本列表时,生成文件查看请求信息,该文件查看请求信息中包括用户选中的图形化编程文件的版本标识,以便于能够根据该版本标识在图形化编程工具上显示相应的图形化编程作品。
步骤S602,根据上述第一版本标识,获取上述图形化编程文件最后保存的文件版本提交信息。
步骤S603,根据上述文件版本提交信息,获取上述第一版本标识对应的图形化编程文件的角色数据,上述角色数据包括角色存储对象和数据存储对象。
在本申请实施例中,根据图形化编程文件的版本标识,获取该图形化编程文件最后保存的文件版本提交信息,以从该文件版本提交信息中获取图形化编程文件的角色数据,从而根据角色存储对象和数据存储对象确定角色的索引地址以及角色的修改内容。
步骤S604,根据上述角色数据,在图形化编程工具中合成并显示上述第一版本标识对应的图形化编程文件。
在本申请实施例中,在获取到角色存储对象和数据存储对象后,通过反序列化在图形化编程工具中根据角色的原始数据和修改内容,合成并显示对应的图形化编程作品。
在本申请的一些实施例中,用户需要将图形化编程作品回溯到某个历史版本比如版本1,为了保证版本1之后的文件提交记录完整,需要生成一条版本回溯记录,以记录回溯版本与该图形化编程作品的最新版本的差分数据,保证在进行回溯操作后,版本提交链表中的版本信息的完整性,不会导致版本1之后的版本信息的丢失。
请参见图7,图7是本申请实施例提供的一种图形化编程文件的回溯方法的流程示意图,详述如下:
步骤S701,获取版本回溯请求信息,上述版本回溯请求信息中包括第二版本标识,上述第二版本标识为请求回溯的图形化编程文件的版本标识。
步骤S702,根据差分算法,确定上述第二版本标识对应的图形化编程文件和第三版本标识对应的图形化编程文件的差分数据,上述第三版本标识为最后保存的图形化编程文件的版本标识。
步骤S703,根据确定的差分数据,还原所述第二版本标识对应的图形化编程文件,并生成版本回溯记录,上述版本回溯记录用于记录上述图形化编程文件的回溯操作。
在本申请实施例中,通过获取图形化编程文件的编辑信息,并根据该编辑信息生成用于记录有新建的角色的原始数据角色存储对象和/或记录有基于角色的修改内容生成的差分数据补丁的数据存储对象,再根据该角色存储对象和数据存储对象,以及图形化编程文件的角色索引信息,生成文件版本提交信息,并不需要将整个图形化编程文件进行保存,而是仅保存记录基于新建角色生成的角色存储对象和/或基于修改角色生成的数据存储对象,以及图形化编程文件的角色索引信息生成的文件版本提交信息,大大减少了所需要保存的图形编程文件的版本数据,并通过增量式的数据存储对象记录角色的变化,可以快速并有效地追踪图形化编程文件中角色的修改,提高了图形化编程文件追踪效率和准确率,用户使用体验更好。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
基于上述实施例所提供的图形化编程文件的版本管理方法,本申请实施例进一步给出实现上述方法实施例的装置实施例。
请参见图8,图8是本申请实施例提供的图形化编程文件的版本管理装置的示意图。包括的各单元用于执行图1对应的实施例中的各步骤。具体请参阅图1对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图8,图形化编程文件的版本管理装置8包括:
编辑信息获取单元81,用于获取上述图形化编程文件的编辑信息,上述编辑信息包括角色的新建和/或修改;
存储对象生成单元82,用于根据上述编辑信息,生成角色存储对象和/或数据存储对象,上述角色存储对象中记录有新建的角色的原始数据,上述数据存储对象中记录有基于角色的修改内容生成的差分数据补丁;
文件版本提交信息生成单元83,用于根据上述角色存储对象和/或上述数据存储对象,以及角色索引信息,生成文件版本提交信息,上述角色索引信息中包括角色的索引地址。
在本申请的一些实施例中,上述存储对象生成单元82,用于:
当上述编辑信息为角色的修改时,根据差分算法确定角色的修改内容,并生成差分数据补丁;
获取被修改的角色的版本标识信息和索引地址,上述版本标识信息包括角色的原始版本标识和修改版本标识;
根据上述版本标识信息、上述索引地址和上述差分数据补丁,生成上述数据存储对象。
在本申请的另一些实施例中上述文件版本提交信息包括版本数据链表,上述文件版本提交信息生成单元83,用于:
获取上述数据存储对象中的角色的索引地址;
根据上述数据存储对象中的角色的索引地址,确定上述数据存储对象所属图形化编程文件的角色索引树地址;
根据上述角色索引树地址,确定上述数据存储对象所属的图形化编程文件的当前版本信息;
根据上述当前版本信息,确定修改版本信息;
根据上述修改版本信息更新上述版本提交链表。
在本申请的另一些实施例中上述文件版本提交信息包括文件提交记录,上述文件版本提交信息生成单元83,还用于:
根据上述角色存储对象和上述角色索引信息,生成文件提交记录;或:
根据上述数据存储对象和上述角色索引信息,生成文件提交记录;或:
根据上述角色存储对象、上述数据存储对象和上述角色索引信息,生成文件提交记录。
在本申请的另一些实施例中上述装置还包括:
文件版本提交信息发送单元,用于向云服务器发送上述文件版本提交信息,上述云服务器根据上述文件版本提交信息中的角色索引信息,将上述文件版本提交信息保存至上述角色索引信息对应的图形化编程文件中。
在本申请的另一些实施例中上述装置还包括:
文件查看请求信息获取单元,用于获取文件查看请求信息,上述文件查看请求信息中包括第一版本标识,上述第一版本标识为请求查看的图形化编程文件的版本标识;
文件版本提交信息获取单元,用于根据上述第一版本标识,获取上述图形化编程文件最后保存的文件版本提交信息;
角色数据获取单元,用于根据上述文件版本提交信息,获取上述第一版本标识对应的图形化编程文件的角色数据,上述角色数据包括角色存储对象和数据存储对象;
图形化编程文件合成显示单元,用于根据上述角色数据,在图形化编程工具中合成并显示上述第一版本标识对应的图形化编程文件。
在本申请的另一些实施例中上述装置还包括:
版本回溯请求信息获取单元,用于获取版本回溯请求信息,上述版本回溯请求信息中包括第二版本标识,上述第二版本标识为请求回溯的图形化编程文件的版本标识;
差分数据确定单元,用于根据差分算法,确定上述第二版本标识对应的图形化编程文件和第三版本标识对应的图形化编程文件的差分数据,上述第三版本标识为最后保存的图形化编程文件的版本标识;
版本回溯单元,用于根据确定的差分数据,还原所述第二版本标识对应的图形化编程文件,并生成版本回溯记录,上述版本回溯记录用于记录上述图形化编程文件的回溯操作。
在本申请实施例中,通过获取图形化编程文件的编辑信息,并根据该编辑信息生成用于记录有新建的角色的原始数据角色存储对象和/或记录有基于角色的修改内容生成的差分数据补丁的数据存储对象,再根据该角色存储对象和数据存储对象,以及图形化编程文件的角色索引信息,生成文件版本提交信息,并不需要将整个图形化编程文件进行保存,而是仅保存记录基于新建角色生成的角色存储对象和/或基于修改角色生成的数据存储对象,以及图形化编程文件的角色索引信息生成的文件版本提交信息,大大减少了所需要保存的图形编程文件的版本数据,并通过增量式的数据存储对象记录角色的变化,可以快速并有效地追踪图形化编程文件中角色的修改,提高了图形化编程文件追踪效率和准确率,用户使用体验更好。
需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
图9是本申请实施例提供的图形化编程文件的版本管理设备的示意图。如图9所示,该实施例的图形化编程文件的版本管理设备9包括:处理器90、存储器91以及存储在存储器91中并可在处理器90上运行的计算机程序92,例如版本管理程序。处理器90执行计算机程序92时实现上述各个图形化编程文件的版本管理方法实施例中的步骤,例如图1所示的步骤101-103。或者,处理器90执行计算机程序92时实现上述各装置实施例中各模块/单元的功能,例如图8所示单元81-83的功能。
示例性的,计算机程序92可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器91中,并由处理器90执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序92在图形化编程文件的版本管理设备9中的执行过程。例如,计算机程序92可以被分割成编辑信息获取单元81、存储对象生成单元82、文件版本提交信息生成单元83,各单元具体功能请参阅图1对应的实施例中地相关描述,此处不赘述。
图形化编程文件的版本管理设备可包括,但不仅限于,处理器90、存储器91。本领域技术人员可以理解,图9仅仅是图形化编程文件的版本管理设备9的示例,并不构成对图形化编程文件的版本管理设备9的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如图形化编程文件的版本管理设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器90可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器91可以是图形化编程文件的版本管理设备9的内部存储单元,例如图形化编程文件的版本管理设备9的硬盘或内存。存储器91也可以是图形化编程文件的版本管理设备9的外部存储设备,例如图形化编程文件的版本管理设备9上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器91还可以既包括图形化编程文件的版本管理设备9的内部存储单元也包括外部存储设备。存储器91用于存储计算机程序以及图形化编程文件的版本管理设备所需的其他程序和数据。存储器91还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时可实现上述图形化编程文件的版本管理方法。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在图形化编程文件的版本管理设备上运行时,使得图形化编程文件的版本管理设备执行时实现可实现上述图形化编程文件的版本管理方法。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种图形化编程文件的版本管理方法,其特征在于,所述方法包括:
获取所述图形化编程文件的编辑信息,所述编辑信息包括角色的新建和/或修改;
根据所述编辑信息,生成角色存储对象和/或数据存储对象,所述角色存储对象中记录有新建的角色的原始数据,所述数据存储对象中记录有基于角色的修改内容生成的差分数据补丁;
根据所述角色存储对象和/或所述数据存储对象,以及角色索引信息,生成文件版本提交信息,所述角色索引信息中包括角色的索引地址。
2.如权利要求1所述的图形化编程文件的版本管理方法,其特征在于,所述根据所述编辑信息,生成角色存储对象和/或数据存储对象中,包括:
当所述编辑信息为角色的修改时,根据差分算法确定角色的修改内容,并生成差分数据补丁;
获取被修改的角色的版本标识信息和索引地址,所述版本标识信息包括角色的原始版本标识和修改版本标识;
根据所述版本标识信息、所述索引地址和所述差分数据补丁,生成所述数据存储对象。
3.如权利要求1所述的图形化编程文件的版本管理方法,其特征在于,所述文件版本提交信息包括版本数据链表,所述根据所述角色存储对象和/或所述数据存储对象,以及角色索引信息,生成版本提交信息中,包括:
获取所述数据存储对象中的角色的索引地址;
根据所述数据存储对象中的角色的索引地址,确定所述数据存储对象所属图形化编程文件的角色索引树地址;
根据所述角色索引树地址,确定所述数据存储对象所属的图形化编程文件的当前版本信息;
根据所述当前版本信息,确定修改版本信息;
根据所述修改版本信息更新所述版本提交链表。
4.如权利要求1所述的图形化编程文件的版本管理方法,其特征在于,所述文件版本提交信息包括文件提交记录,所述根据所述角色存储对象和/或所述数据存储对象,以及角色索引信息,生成版本提交信息中,包括:
根据所述角色存储对象和所述角色索引信息,生成文件提交记录;或:
根据所述数据存储对象和所述角色索引信息,生成文件提交记录;或:
根据所述角色存储对象、所述数据存储对象和所述角色索引信息,生成文件提交记录。
5.如权利要求1所述的图形化编程文件的版本管理方法,其特征在于,在所述根据所述角色存储对象和/或所述数据存储对象,以及角色索引信息,生成文件版本提交信息之后,还包括:
向云服务器发送所述文件版本提交信息,所述云服务器根据所述文件版本提交信息中的角色索引信息,将所述文件版本提交信息保存至所述角色索引信息对应的图形化编程文件中。
6.如权利要求1所述的图形化编程文件的版本管理方法,其特征在于,在所述根据所述角色存储对象和/或所述数据存储对象,以及角色索引信息,生成文件版本提交信息之后,还包括:
获取文件查看请求信息,所述文件查看请求信息中包括第一版本标识,所述第一版本标识为请求查看的图形化编程文件的版本标识;
根据所述第一版本标识,获取所述图形化编程文件最后保存的文件版本提交信息;
根据所述文件版本提交信息,获取所述第一版本标识对应的图形化编程文件的角色数据,所述角色数据包括角色存储对象和数据存储对象;
根据所述角色数据,在图形化编程工具中合成并显示所述第一版本标识对应的图形化编程文件。
7.如权利要求1所述的图形化编程文件的版本管理方法,其特征在于,在所述根据所述角色存储对象和/或所述数据存储对象,以及角色索引信息,生成文件版本提交信息之后,还包括:
获取版本回溯请求信息,所述版本回溯请求信息中包括第二版本标识,所述第二版本标识为请求回溯的图形化编程文件的版本标识;
根据差分算法,确定所述第二版本标识对应的图形化编程文件和第三版本标识对应的图形化编程文件的差分数据,所述第三版本标识为最后保存的图形化编程文件的版本标识;
根据确定的差分数据,还原所述第二版本标识对应的图形化编程文件,并生成版本回溯记录,所述版本回溯记录用于记录所述图形化编程文件的回溯操作。
8.一种图形化编程文件的版本管理装置,其特征在于,所述装置包括:
编辑信息获取单元,用于获取所述图形化编程文件的编辑信息,所述编辑信息包括角色的新建和/或修改;
存储对象生成单元,用于根据所述编辑信息,生成角色存储对象和/或数据存储对象,所述角色存储对象中记录有新建的角色的原始数据,所述数据存储对象中记录有基于角色的修改内容生成的差分数据补丁;
文件版本提交信息生成单元,用于根据所述角色存储对象和/或所述数据存储对象,以及角色索引信息,生成文件版本提交信息,所述角色索引信息中包括角色的索引地址。
9.一种图形化编程文件的版本管理设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的图形化编程文件的版本管理方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的图形化编程文件的版本管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211722494.5A CN116069383A (zh) | 2022-12-30 | 2022-12-30 | 一种图形化编程文件的版本管理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211722494.5A CN116069383A (zh) | 2022-12-30 | 2022-12-30 | 一种图形化编程文件的版本管理方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116069383A true CN116069383A (zh) | 2023-05-05 |
Family
ID=86176175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211722494.5A Pending CN116069383A (zh) | 2022-12-30 | 2022-12-30 | 一种图形化编程文件的版本管理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116069383A (zh) |
-
2022
- 2022-12-30 CN CN202211722494.5A patent/CN116069383A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220342875A1 (en) | Data preparation context navigation | |
US9424271B2 (en) | Atomic incremental load for map-reduce systems on append-only file systems | |
CN107016047A (zh) | 文档查询、文档存储方法及装置 | |
US20130173552A1 (en) | Space efficient cascading point in time copying | |
CN110781197B (zh) | 一种hive离线同步校验方法、装置及电子设备 | |
US8589454B2 (en) | Computer data file merging based on file metadata | |
CN112947986A (zh) | 多版本代码签入控制方法、装置、客户端及存储介质 | |
CN111522574B (zh) | 差分包生成方法及相关设备 | |
CN112416710A (zh) | 用户操作的记录方法、装置、电子设备及存储介质 | |
CN115858488A (zh) | 基于数据治理的平行迁移方法、装置及可读介质 | |
JP5556025B2 (ja) | ストレージシステム | |
CN110543330A (zh) | 一种环境数据管理系统、环境部署方法、装置及存储介质 | |
US20120159376A1 (en) | Editing data records associated with static images | |
CN112364021A (zh) | 业务数据处理方法、装置及存储介质 | |
CN116069383A (zh) | 一种图形化编程文件的版本管理方法、装置及设备 | |
CN103455548A (zh) | 一种实现dwg图形属性和数据库同步的方法 | |
CN114253922A (zh) | 资源目录管理方法、资源管理方法、装置、设备及介质 | |
US9239886B2 (en) | Partitioned list | |
EP2972666B1 (en) | Visualization interface for information object system | |
CN117453707B (zh) | 数据更新方法、装置、电子设备及存储介质 | |
CN116611418B (zh) | 基于在线编辑的报告处理方法、装置、电子设备及介质 | |
US20130305213A1 (en) | Modularized customization of a model in a model driven development environment | |
JP6674067B1 (ja) | ファイル関連付け処理装置、ファイル関連付け方法及びファイル関連付けプログラム | |
CN116009841A (zh) | 一种文件提交冲突管理方法、系统及设备 | |
CN114510534B (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 |