一种数据文件的多版本控制方法及装置制造方法及图纸

技术编号:2917621 阅读:247 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种数据文件的多版本控制方法及装置。方法中,首先生成基准版本数据块的数据块指纹;根据数据块指纹确定新版本中所包含的与基准版本相同的数据内容,并对相同的数据内容进行标记;根据标记确定新版本包含而基准版本未包含的数据内容,并对这些数据内容进行标记;根据标记确定这些数据内容在新版本中的位置;通过数据块指纹和数据内容的比较,确定两个版本中数据内容相同的数据块;抽取出两个版本之间的相同数据内容和新版本特有的数据内容,及各部分数据内容在新版本中的位置。这种处理方法简单快捷,无需对新版本的完整数据内容进行存储,大大节省了存储空间,能够快速恢复出新版本的全部数据内容,具有良好的时效性。

【技术实现步骤摘要】

本专利技术涉及计算机技术,特别是指一种数据文件的多版本控制方法及装置
技术介绍
软件升级的处理过程一般为:找出低版本文件和高版本文件中数据内容的不匹配点,以产生不匹配块,并针对找到的匹配块和不匹配块产生估计相应的动作,其中的动作是复制、替换、插入、删除之一,然后执行相应的动作,以将低版本文件的内容替换成高版本文件的内容。但是,这种软件升级处理过程中,对文本编辑的动作过于繁杂众多,从所生成的增量恢复软件的处理时间较长,时效性非常不好。另外,目前还有借由增量方式来使数据文件升级的方法,主要是当数据文件在进行升级时,仅需将新版本增加的数据文件与旧版本的数据文件(包括原始数据文件及较旧的升级版本)结合在一起,并分别建立与旧版本数据文件及新版本数据文件相对应的索引;且令用户可通过所建立的索引,找寻旧版本的数据文件及升级后新版本的数据文件,并能够随时对其中任一版本进行选择及切换的操作,进而提供用户可灵活切换文件版本的功能。然而,该方法仅仅是针对一个软件的两个版本中的众多文件,建立对应的索引关系;不是针对一个具体文件的具体内容进行压缩。压缩率不高。综上所述,目前都是基于软件升级的处理方法,都无法针对不同版本数据文件进行相应处理。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种数据文件的多版本控制方法及装置,简单有效地确定出两个版本之间的相同数据内容和新版本特有数据内容。-->为达到上述目的,本专利技术的技术方案是这样实现的:一种数据文件的多版本控制方法,该方法包含以下步骤:A、生成基准版本数据块的数据块指纹;B、根据数据块指纹确定新版本中包含的与基准版本相同的数据内容,并对相同的数据内容进行标记,所述标记包含相同的数据内容的长度,以及在基准版本、新版本中的位置;根据所述标记确定新版本包含、而基准版本未包含的特有的数据内容。其中,所述步骤A包括:从基准版本起始处开始,对于每一个固定长度的数据块,将该数据块划分为多个指纹长度的子块,对各子块的数据内容进行异或操作,所得结果作为该数据块的数据块指纹。其中,所述步骤A包括:当前数据块的数据块指纹通过对前一个数据块的数据块指纹、前一个数据块的第一个子块的数据内容与当前数据块最后一个子块的数据内容三者进行异或操作得到。其中,所述步骤A包括:对基准版本的所有数据块指纹进行堆排序,在排序后的数据块指纹中仅保留出现次数不超过设定次数的数据块指纹。其中,所述步骤B包括:B1、从新版本的起始处开始生成固定长度的数据块的数据块指纹;B2、在排序后的基准版本的各数据块指纹中进行折半查找,判断基准版本排序后的各数据块指纹中是否存在该新版本的数据块指纹,如果存在,则继续执行步骤B3,否则,继续执行步骤B6;B3、判断新版本的该数据块内容与基准版本相应数据块的内容是否相同,如果相同,则继续执行步骤B4,否则,继续执行步骤B6;B4、扩展比较新版本数据块和基准版本数据块的数据内容,直至数据内容出现不相同时停止比较,对相同数据内容进行标记,然后继续执行步骤B5;B5、判断是否已经遍历新版本的最后一个数据块,如果已经遍历,则对新版本特有的数据内容进行标记并结束当前流程;否则,从新版本还未遍历的起始位置生成一个数据块指纹,然后返回执行步骤B2;-->B6、判断是否已经遍历新版本的最后一个数据块,如果已经遍历,则对新版本特有的数据内容进行标记并结束当前流程;否则,在当前数据块的开始处,向后移动设定长度,对于从该位置开始的固定长度的数据块,生成该数据块的数据块指纹,然后返回执行步骤B2。其中,步骤B4中所述扩展比较新版本数据块和基准版本数据块的数据内容,包括:对数据块指纹相同的数据块从前后两个方向依次比较数据内容。其中,所述步骤B之后进一步包括:对各部分数据内容的标记进行整理得到新版本标记集合,该新版本标记集合中既包括新版本特有数据内容的标记,也包括相同数据内容的标记;新版本标记集合根据数据块在新版本的起始位置进行排序。其中,所述步骤B之后进一步包括步骤C:对于一个版本阶段内的各个新版本,提取各新版本相对于基准版本的公共的相同数据块内容,以及新版本特有的公共数据块内容,对所述公共数据内容仅存储一次。其中,所述步骤C之后进一步包括:当恢复新版本时,根据新版本标记集合中各个数据块在新版本的起始位置,恢复新版本。一种数据文件的多版本控制装置,包括:数据块指纹提取器、数据块指纹比较器、数据块内容比较器和标记生成器,其中,所述数据块指纹提取器用于生成基准版本中所有固定长度数据块的指纹,并且生成新版本中固定长度的数据块的数据块指纹;所述数据块指纹比较器用于确定基准版本中是否存在与新版本的数据块指纹相同的数据块指纹,存在相同时,通知所述数据内容比较器比较数据块内容,不存在相同时,通知所述数据块指纹提取器生成新版本中的下一个数据块的数据块指纹;所述数据内容比较器用于比较数据块指纹相同的两个数据块的内容是否完全相同,完全相同时,对所述两个数据块进行扩展比较,直至出现数据内容不相同时停止比较,向所述标记生成器提供所得到的相同数据内容,不完全相同时,通知数据块指纹提取器生成新版本中下一个数据块的数据块指纹;所述标记生成器用于标记新版本和基准版本中的相同数据块内容、以及新版本特有数据内容的标记,将各部分数据内容的标记按照各部分-->数据内容在新版本中的前后顺序依次排放。其中,所述数据块指纹提取器进一步用于对基准版本的各数据块指纹进行堆排序,在排序后的数据块指纹中仅保留数据块指纹出现次数不超过设定次数的数据块指纹。其中,所述共同信息提取器该装置,用于提取一个版本阶段中各个新版本相对于基准数据的公共相同数据内容、以及各新版本特有的公共数据内容,对所述数据内容及标记存储一次。其中,该装置进一步包括:数据恢复处理器,用于根据新版本标记集合中各个数据块在新版本的起始位置,恢复新版本。本专利技术中,生成基准版本数据块的数据块指纹,根据数据块指纹和相应数据内容确定新版本中所包含的与基准版本相同的数据内容,并对相同的数据内容进行标记;该标记包含相同的数据内容的长度、以及在基准版本、新版本中的位置。根据这些标记确定新版本包含而基准版本未包含的数据内容,并对这些数据内容进行标记,区分出两个版本之间的相同数据内容和新版本特有的数据内容,及各部分数据内容在新版本中的位置,处理简单快捷,无需任何复杂处理。根据本专利技术提出的方案,无需对新版本的完整数据内容进行存储,只需存储基准版本、新版本中和基准版本公共包含的数据内容的长度及在基准版本和新版本中的位置信息、新版本中所包含的基准版本中未包含的数据内容及该数据内容在基准版本中的位置信息,大大节省了存储空间,并且能够快速恢复出新版本的全部数据内容,具有良好的实效性。另外,在某一阶段内针对基准版本生成很多不同的新版本时,本专利技术提取该阶段内各个新版本相对于基准数据的公共新版本特有数据内容,对这些数据内容及标记进行存储,然后再提取各个新版本相对于基准数据所特有的不同数据内容,对这些数据内容及标记分别进行存储,实现对同一数据文件的多个版本的压缩和恢复,进一步提高压缩率。-->附图说明图1为本专利技术中确定不同版本数据文件内容异同流程图;图2为本专利技术中数据文件多版本控制装置结构示意图。具体实施方式本专利技术中,将数据文件划分为本文档来自技高网...

【技术保护点】
一种数据文件的多版本控制方法,其特征在于,该方法包含以下步骤: A、生成基准版本数据块的数据块指纹; B、根据数据块指纹确定新版本中包含的与基准版本相同的数据内容,并对相同的数据内容进行标记,所述标记包含相同的数据内容的长度、以及在基准版本、新版本中的位置,根据所述标记确定新版本包含、而基准版本未包含的特有的数据内容。

【技术特征摘要】
1、一种数据文件的多版本控制方法,其特征在于,该方法包含以下步骤:A、生成基准版本数据块的数据块指纹;B、根据数据块指纹确定新版本中包含的与基准版本相同的数据内容,并对相同的数据内容进行标记,所述标记包含相同的数据内容的长度、以及在基准版本、新版本中的位置,根据所述标记确定新版本包含、而基准版本未包含的特有的数据内容。2、根据权利要求1所述的方法,其特征在于,所述步骤A包括:从基准版本起始处开始,对于每一个固定长度的数据块,将该数据块划分为多个指纹长度的子块,对各子块的数据内容进行异或操作,所得结果作为该数据块的数据块指纹。3、根据权利要求2所述的方法,其特征在于,所述步骤A包括:当前数据块的数据块指纹通过对前一个数据块的数据块指纹、前一个数据块的第一个子块的数据内容与当前数据块最后一个子块的数据内容三者进行异或操作得到。4、根据权利要求2或3所述的方法,其特征在于,所述步骤A包括:对基准版本的所有数据块指纹进行堆排序,在排序后的数据块指纹中仅保留出现次数不超过设定次数的数据块指纹。5、根据权利要求4所述的方法,其特征在于,所述步骤B包括:B1、从新版本的起始处开始生成固定长度的数据块的数据块指纹;B2、在排序后的基准版本的各数据块指纹中进行折半查找,判断基准版本排序后的各数据块指纹中是否存在该新版本的数据块指纹,如果存在,则继续执行步骤B3,否则,继续执行步骤B6;B3、判断新版本的该数据块内容与基准版本相应数据块的内容是否相同,如果相同,则继续执行步骤B4,否则,继续执行步骤B6;B4、扩展比较新版本数据块和基准版本数据块的数据内容,直至数据内容出现不相同时停止比较,对相同数据内容进行标记,然后继续执行步骤B5;B5、判断是否已经遍历新版本的最后一个数据块,如果已经遍历,则对新版本特有的数据内容进行标记并结束当前流程;否则,从新版本还未遍历的起始位置生成一个数据块指纹,然后返回执行步骤B2;B6、判断是否已经遍历新版本的最后一个数据块,如果已经遍历,则对新版本特有的数据内容进行标记并结束当前流程;否则,在当前数据块的开始处,向后移动设定长度,对于从该位置开始的固定长度的数据块,生成该数据块的数据块指纹,然后返回执行步骤B2。6、根据权利要求5所述的方法,其特征在于,步骤B4中所述扩展比较新版本数据块和基准版本数据块的数据内容,包括:对数据块指纹相同的数据块从前后两个方向依次比较数据内容...

【专利技术属性】
技术研发人员:徐泽明赵晓睿赵丽媛
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1