CN101382885B - 一种数据文件的多版本控制方法及装置 - Google Patents

一种数据文件的多版本控制方法及装置 Download PDF

Info

Publication number
CN101382885B
CN101382885B CN2007101214455A CN200710121445A CN101382885B CN 101382885 B CN101382885 B CN 101382885B CN 2007101214455 A CN2007101214455 A CN 2007101214455A CN 200710121445 A CN200710121445 A CN 200710121445A CN 101382885 B CN101382885 B CN 101382885B
Authority
CN
China
Prior art keywords
data
data block
redaction
content
fingerprint
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
CN2007101214455A
Other languages
English (en)
Other versions
CN101382885A (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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN2007101214455A priority Critical patent/CN101382885B/zh
Priority to US12/231,474 priority patent/US8108348B2/en
Publication of CN101382885A publication Critical patent/CN101382885A/zh
Application granted granted Critical
Publication of CN101382885B publication Critical patent/CN101382885B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control

Abstract

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

Description

一种数据文件的多版本控制方法及装置
技术领域
本发明涉及计算机技术,特别是指一种数据文件的多版本控制方法及装置。
背景技术
软件升级的处理过程一般为:找出低版本文件和高版本文件中数据内容的不匹配点,以产生不匹配块,并针对找到的匹配块和不匹配块产生估计相应的动作,其中的动作是复制、替换、插入、删除之一,然后执行相应的动作,以将低版本文件的内容替换成高版本文件的内容。但是,这种软件升级处理过程中,对文本编辑的动作过于繁杂众多,从所生成的增量恢复软件的处理时间较长,时效性非常不好。
另外,目前还有借由增量方式来使数据文件升级的方法,主要是当数据文件在进行升级时,仅需将新版本增加的数据文件与旧版本的数据文件(包括原始数据文件及较旧的升级版本)结合在一起,并分别建立与旧版本数据文件及新版本数据文件相对应的索引;且令用户可通过所建立的索引,找寻旧版本的数据文件及升级后新版本的数据文件,并能够随时对其中任一版本进行选择及切换的操作,进而提供用户可灵活切换文件版本的功能。然而,该方法仅仅是针对一个软件的两个版本中的众多文件,建立对应的索引关系;不是针对一个具体文件的具体内容进行压缩。压缩率不高。
综上所述,目前都是基于软件升级的处理方法,都无法针对不同版本数据文件进行相应处理。
发明内容
有鉴于此,本发明的主要目的在于提供一种数据文件的多版本控制方法及装置,简单有效地确定出两个版本之间的相同数据内容和新版本特有数据内容。
为达到上述目的,本发明的技术方案是这样实现的:
一种数据文件的多版本控制方法,该方法包含以下步骤:
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为本发明中数据文件多版本控制装置结构示意图。
具体实施方式
本发明中,将数据文件划分为基准版本和新版本,通过本发明提供的方案确定新版本中所包含的基准版本中包含的数据内容及基准版本中未包含的数据内容,从而实现对多版本数据文件的控制,具体处理为:生成基准版本数据块的数据块指纹,根据数据块指纹确定新版本中所包含的与基准版本相同的数据内容,并对相同的数据内容进行标记,该标记包含相同的数据内容的长度、以及在基准版本、新版本中的位置,根据标记确定新版本包含而基准版本未包含的特有数据内容,并对这些数据内容进行标记,根据标记确定这些数据内容在新版本中的位置。
图1为本发明中确定不同版本数据文件内容异同流程图,如图1所示,本发明中以电子文档为例,确定不同版本电子文档内容异同的处理过程包括以下步骤:
步骤101:针对基准版本生成各文本块的文本块指纹,并进行排序处理。具体处理可以为:从基准版本起始处开始,每个固定长度(比如1K字节)的文本块,被划分为多个指纹长度大小(比如4字节)的子块,对各子块的文本内容进行异或操作,最后所得结果作为该文本块的文本块指纹;然后从起始处向后移动固定长度(比如1个字节),从该处开始确定固定长度的文本块,划分为多个以设定分段长度为大小的子块,对各子块的文本内容进行异或操作,最后所得结果作为该文本块的文本块指纹,直至将基准版本所有文本内容都划分完毕。例如,从基准版本起始处确定1K字节(Bytes)长度的文本块,在该文本块内以4比特为长度划分一个子块,然后对划分得到的各子块的文本内容进行异或操作,最后得到的结果即为该文本块的文本块指纹;然后从起始处向后移一个字节,从该处起始再确定1K字节长度的文本块,在该文本块内以4比特为长度划分一个子块,然后对划分得到的各子块的文本内容进行异或操作,最后得到的结果即为该文本块的文本块指纹,直至将基准版本所有文本内容都划分完毕。指纹长度是指每个指纹的编码长度。
另外,当前文本块与前一个文本块这样两个连续的文本块中,当前文本块是通过对前一个文本块移动设定个数字节得到的,因此,由于异或运算所特有的性质,相邻两个文本块的指纹可以相互得到,即当前文本块的文本块指纹可通过对前一个文本块的文本块指纹、前一个文本块的第一个子块的文本内容与当前文本块最后一个子块的文本内容三者进行异或操作来得到,从而简化得到文本块指纹的相关处理。
对于所得到的基准版本的各文本块指纹,作进一步的堆排序。对各文本块指纹进行堆排序,便于后续新版本的文本块指纹与基准版本的文本块指纹进行查找时,能够根据排序的结果进行查找处理,例如折半查找,使得处理更为快捷方便。另外,由于文本块指纹用于标识文本块的内容特性,因此,生成基准版本的各文本块指纹后,可进一步对文本块指纹进行清理,即在排序后的文本块指纹中,仅保留文本块指纹重复次数不超过设定次数,比如只保留出现次数为1次的文本块指纹。
步骤102:从新版本的起始处确定设定长度的文本块,该文本块的长度与基准版本中的文本块长度相同,将该文本块划分为多个子块,各子块的长度与基准版本中的子块长度相同,对各子块的文本内容进行异或操作,最后所得结果作为该文本块的文本块指纹。
步骤103:将步骤102中得到的新版本的文本块指纹与基准版本中的各文本块指纹进行比较。
步骤104:判断基准版本的文本块指纹是否存在与新版本的文本块指纹相同的文本块指纹,如果文本块指纹相同,进一步比较文本块的内容是否相同;如果相同,则表明相应两个文本块的内容可能相同,继续执行步骤105;否则,继续执行步骤110。
步骤105:判断新版本的该文本块内容与基准版本相应文本块的内容是否相同,即依次比较这两个文本块每个字节的文本内容,如果相同,则继续执行106;否则,继续执行步骤110。
步骤106:扩展比较文本块指纹相同的新版本文本块和基准版本文本块的文本内容,直至文本内容出现不同,为了获得最大的相同文本内容,可前后两个方向扩展比较新版本和基准版本文本块,即:从两个文本块首尾分别向前向后两个方向逐个字符依次比较新版本与基准版本的内容,在每个方向上出现字符内容不相同时,停止比较。
步骤107:出现文本内容不相同时,对相同文本内容进行标记,该标记能够标记出相同文本块内容在基准版本中的位置、在新版本中的位置,以及该文本块的长度。
步骤108:判断是否已经遍历新版本的最后一个文本块,如果均已比较,则继续执行步骤112;否则,继续执行步骤109。
步骤109:从新版本还未遍历的起始位置生成一个文本块指纹,即从新版本的文本内容与基准版本不相同处开始的固定设定长度的文本块,该文本块的长度与基准版本中的文本块长度相同,将该文本块划分为多个子块,各子块的长度与基准版本中的子块长度相同,对各子块的文本内容进行异或操作,最后所得结果作为该文本块的文本块指纹,然后返回执行步骤103。
步骤110:判断是否已经遍历新版本的最后一个文本块,如果已经遍历,则继续执行步骤112;否则,继续执行步骤111。
步骤111:从当前文本块处向后移设定个字节,从该处起始再确定设定长度的文本块,然后将该文本块划分为多个以设定分段长度为大小的子块,对各子块的文本内容进行异或操作,最后所得结果作为该文本块的文本块指纹,然后返回执行步骤103。
如果步骤106中,从文本块指纹相同的文本块的前后两个方向依次比较文本内容时,在该文本块之前比较到新版本特有文本内容、并确定相应文本块指纹与基准版本的各文本块指纹不相同后,可向对应于该文本块指纹的文本块向前的方向移设定个字节,得到新的文本块。
步骤112:根据新版本和基准版本的相同文本块的标记,对新版本特有文本内容进行标记,该标记能够标记出新版本特有文本内容在新版本中的位置,该标记可以包括该新版本特有文本内容在新版本中的起始位置及长度。
确定了新版本相对于基准版本的相同文本内容和新版本特有文本内容后,可进一步对各部分文本内容的标记进行整理得到新版本标记集合。该新版本标记集合中既包括新版本特有文本内容的标记,也包括相同文本内容的标记,将各部分文本内容按照其在新版本中的前后顺序依次排放。
根据以上描述可见,本发明中无需对新版本的完整文本内容进行存储,只需存储基准版本,新版本中所特有的文本块和相应的位置信息,新版本与基准版本共同的文本块只需要存储相应的位置信息和长度信息。这样,大大节省了存储空间,并且能够快速恢复出新版本的全部文本内容,具有良好的时效性。恢复新版本的文本内容时,根据新版本标记集合中各个文本块在新版本的起始位置,恢复新版本。
在一个版本阶段内,可能会针对基准版本生成很多不同的新版本,此时,基于基准版本,会生成一系列的标记内容,为了进一步提高压缩率,将一个版本阶段中各个新版本相对于基准文本的公共的相同文本内容、和新版本特有的公共文本内容提取出来,对这些文本内容及标记仅在公共存储区域存储一次,可以进一步减少存储量。这样,新版本中所包含的与基准版本相同的文本内容,可存储于版本阶段的公共存储区域中,新版本中所包含的特有文本内容,可存储于本版本的特有存储区域中。当恢复某一个版本阶段的某一个新版本时,只需要从公共存储区域取出相应的标记和内容,并从本版本的特有存储区域中取出该新版本的特有文本内容和标记。新版本特有的公共文本内容是指基准版本中没有、而各个新版本中均有的文本内容。
以上操作可以由数据文件多版本控制装置或应用软件来完成。
图2为本发明中数据文件多版本控制装置结构示意图,如图2所示,该装置包括数据块指纹提取器、数据块指纹比较器、数据块内容比较器和标记生成器。其中,数据块指纹提取器用于生成基准版本中所有固定长度数据块的指纹;并且向数据块指纹比较器提供数据块指纹,即在需要的时候生成新版本中某些固定长度的数据块的数据块指纹。数据块指纹比较器用于确定基准版本中是否存在与新版本的数据块指纹相同的数据块指纹;存在相同时,通知所述数据内容比较器比较数据块内容;不存在相同时,通知所述数据块指纹提取器生成新版本中的下一个数据块的数据块指纹。数据内容比较器用于当新版本的数据块指纹与基准版本中的某个数据块指纹相同时,依次比较这两个数据块指纹相同的数据块的数据内容是否完全相同,当完全相同时,对这两个数据块进行扩展比较,为了获得最大的相同数据内容,可前后扩展比较新版本和基准版本数据块,直至出现数据内容不相同时停止比较,向所述标记生成器提供比较得到的相同数据内容,通知标记生成器对相同数据内容进行标记;当不完全相同时,通知数据块指纹提取器生成新版本中下一个数据块的数据块指纹。另外,数据块指纹提取器还要负责对基准版本的各数据块指纹进行堆排序,在排序后的数据块指纹中仅保留数据块指纹出现次数不超过固定次数(比如1次)的数据块指纹。标记生成器用于标记新版本和基准版本中的相同数据块内容、以及新版本特有数据内容,将各部分数据内容的标记按照各部分数据内容在新版本中的前后顺序依次排放。
该装置进一步包括:共同信息提取器,用于提取一个版本阶段中(比如一个星期内)的各个新版本相对于基准版本的公共相同数据内容、以及各新版本特有的公共数据内容,仅对这些数据内容及标记存储一次。
该装置进一步包括:数据恢复处理器,用于根据新版本标记集合中各个数据块在新版本的起始位置,恢复新版本。
以上所述的数据文件包括计算机领域中出现的各种文件,例如,Word、Excel、PDF、图像文件、视频文件等各种格式的数据文件。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (12)

1.一种数据文件的多版本控制方法,其特征在于,该方法包含以下步骤:
A、生成基准版本数据块的数据块指纹;
B、根据数据块指纹确定新版本中包含的与基准版本相同的数据内容,并对相同的数据内容进行标记,所述标记包含相同的数据内容的长度、以及在基准版本、新版本中的位置,根据所述标记确定新版本包含、而基准版本未包含的特有的数据内容;
其中,所述步骤A包括:
从基准版本起始处开始,对于每一个固定长度的数据块,将该数据块划分为多个指纹长度的子块,对各子块的数据内容进行异或操作,所得结果作为该数据块的数据块指纹;然后从起始处向后移动固定长度,从该处开始确定固定长度的文本块,划分为多个以设定分段长度为大小的子块,对各子块的文本内容进行异或操作,最后所得结果作为该文本块的文本块指纹,直至将基准版本所有文本内容都划分完毕。
2.根据权利要求1所述的方法,其特征在于,所述步骤A包括:当前数据块的数据块指纹通过对前一个数据块的数据块指纹、前一个数据块的第一个子块的数据内容与当前数据块最后一个子块的数据内容三者进行异或操作得到。
3.根据权利要求1或2所述的方法,其特征在于,所述步骤A包括:对基准版本的所有数据块指纹进行堆排序,在排序后的数据块指纹中仅保留出现次数不超过设定次数的数据块指纹。
4.根据权利要求3所述的方法,其特征在于,所述步骤B包括:
B1、从新版本的起始处开始生成固定长度的数据块的数据块指纹;
B2、在排序后的基准版本的各数据块指纹中进行折半查找,判断基准版本排序后的各数据块指纹中是否存在该新版本的数据块指纹,如果存在,则继续执行步骤B3,否则,继续执行步骤B6;
B3、判断新版本的该数据块内容与基准版本相应数据块的内容是否相同,如果相同,则继续执行步骤B4,否则,继续执行步骤B6;
B4、扩展比较新版本数据块和基准版本数据块的数据内容,直至数据内容出现不相同时停止比较,对相同数据内容进行标记,然后继续执行步骤B5;
B5、判断是否已经遍历新版本的最后一个数据块,如果已经遍历,则对新版本特有的数据内容进行标记并结束当前流程;否则,从新版本还未遍历的起始位置生成一个数据块指纹,然后返回执行步骤B2;
B6、判断是否已经遍历新版本的最后一个数据块,如果已经遍历,则对新版本特有的数据内容进行标记并结束当前流程;否则,在当前数据块的开始处,向后移动设定长度,对于从该位置开始的固定长度的数据块,生成该数据块的数据块指纹,然后返回执行步骤B2。
5.根据权利要求4所述的方法,其特征在于,步骤B4中所述扩展比较新版本数据块和基准版本数据块的数据内容,包括:对数据块指纹相同的数据块从前后两个方向依次比较数据内容。
6.根据权利要求1所述的方法,其特征在于,所述步骤B之后进一步包括:对各部分数据内容的标记进行整理得到新版本标记集合,该新版本标记集合中既包括新版本特有数据内容的标记,也包括相同数据内容的标记;新版本标记集合根据数据块在新版本的起始位置进行排序。
7.根据权利要求1所述的方法,其特征在于,所述步骤B之后进一步包括:
C、对于一个版本阶段内的各个新版本,提取各新版本相对于基准版本的公共的相同数据块内容,以及新版本特有的公共数据块内容,对所述公共数据内容仅存储一次。
8.根据权利要求7所述的方法,其特征在于,所述步骤C之后进一步包括:当恢复新版本时,根据新版本标记集合中各个数据块在新版本的起始位置,恢复新版本。
9.一种数据文件的多版本控制装置,其特征在于,该装置包括:数据块指纹提取器、数据块指纹比较器、数据块内容比较器和标记生成器,其中,
所述数据块指纹提取器用于生成基准版本中所有固定长度数据块的指纹,并且生成新版本中固定长度的数据块的数据块指纹;其中,生成所有固定长度数据块的指纹的方法为:从基准版本起始处开始,对于每一个固定长度的数据块,将该数据块划分为多个指纹长度的子块,对各子块的数据内容进行异或操作,所得结果作为该数据块的数据块指纹;然后从起始处向后移动固定长度,从该处开始确定固定长度的文本块,划分为多个以设定分段长度为大小的子块,对各子块的文本内容进行异或操作,最后所得结果作为该文本块的文本块指纹,直至将基准版本所有文本内容都划分完毕;
所述数据块指纹比较器用于确定基准版本中是否存在与新版本的数据块指纹相同的数据块指纹,存在相同时,通知所述数据内容比较器比较数据块内容,不存在相同时,通知所述数据块指纹提取器生成新版本中的下一个数据块的数据块指纹;
所述数据内容比较器用于比较数据块指纹相同的两个数据块的内容是否完全相同,完全相同时,对所述两个数据块进行扩展比较,直至出现数据内容不相同时停止比较,向所述标记生成器提供所得到的相同数据内容,不完全相同时,通知数据块指纹提取器生成新版本中下一个数据块的数据块指纹;
所述标记生成器用于标记新版本和基准版本中的相同数据块内容、以及新版本特有数据内容的标记,将各部分数据内容的标记按照各部分数据内容在新版本中的前后顺序依次排放。
10.根据权利要求9所述的装置,其特征在于,所述数据块指纹提取器进一步用于对基准版本的各数据块指纹进行堆排序,在排序后的数据块指纹中仅保留数据块指纹出现次数不超过设定次数的数据块指纹。
11.根据权利要求9所述的装置,其特征在于,该装置进一步包括:共同信息提取器,用于提取一个版本阶段中各个新版本相对于基准数据的公共相同数据内容、以及各新版本特有的公共数据内容,对所述数据内容及标记存储一次。
12.根据权利要求9至11任一所述的装置,其特征在于,该装置进一步包括:数据恢复处理器,用于根据新版本标记集合中各个数据块在新版本的起始位置,恢复新版本。
CN2007101214455A 2007-09-06 2007-09-06 一种数据文件的多版本控制方法及装置 Active CN101382885B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2007101214455A CN101382885B (zh) 2007-09-06 2007-09-06 一种数据文件的多版本控制方法及装置
US12/231,474 US8108348B2 (en) 2007-09-06 2008-09-03 Multi-version control method for data documents and device thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101214455A CN101382885B (zh) 2007-09-06 2007-09-06 一种数据文件的多版本控制方法及装置

Publications (2)

Publication Number Publication Date
CN101382885A CN101382885A (zh) 2009-03-11
CN101382885B true CN101382885B (zh) 2012-05-09

Family

ID=40433010

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101214455A Active CN101382885B (zh) 2007-09-06 2007-09-06 一种数据文件的多版本控制方法及装置

Country Status (2)

Country Link
US (1) US8108348B2 (zh)
CN (1) CN101382885B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101582076A (zh) * 2009-06-24 2009-11-18 浪潮电子信息产业股份有限公司 一种基于数据库的重复数据删除方法
US8285957B1 (en) * 2010-01-12 2012-10-09 Netapp, Inc. System and method for preprocessing a data set to improve deduplication
CN102348115B (zh) * 2010-08-02 2014-04-16 南京壹进制信息技术有限公司 一种去除视频中冗余图像的方法和装置
US9043280B1 (en) * 2011-08-15 2015-05-26 Symantec Corporation System and method to repair file system metadata
US9672493B2 (en) * 2012-01-19 2017-06-06 International Business Machines Corporation Systems and methods for detecting and managing recurring electronic communications
CN103309847A (zh) * 2012-03-06 2013-09-18 百度在线网络技术(北京)有限公司 一种用于实现文件比较的方法与设备
CN102819585B (zh) * 2012-07-31 2015-04-22 北大方正集团有限公司 一种xml数据库文档控制方法
CN103701842A (zh) * 2012-09-27 2014-04-02 腾讯科技(深圳)有限公司 数据发送、接收方法及服务器、客户端
WO2016203469A1 (en) * 2015-06-15 2016-12-22 Lookat Technologies Ltd A digital media reviewing system and methods thereof
CN105955937B (zh) * 2016-05-16 2019-03-26 浪潮电子信息产业股份有限公司 一种比较linux系统光盘iso异同的方法
CN108009264B (zh) * 2017-12-14 2020-08-25 北京航天测控技术有限公司 一种用于Excel格式文档的数据版本的比较方法
CN115357429B (zh) * 2022-08-18 2023-06-27 广州鼎甲计算机科技有限公司 恢复数据文件的方法、装置和客户端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1379335A (zh) * 2001-03-30 2002-11-13 松下电器产业株式会社 遥控程序下装系统
US20030163496A1 (en) * 2002-02-28 2003-08-28 Fujitsu Limited Differential data forming method, program, recording medium, and apparatus
US20040181561A1 (en) * 2003-03-14 2004-09-16 International Business Machines Corporation Real time XML data update identification
CN1570878A (zh) * 2003-07-11 2005-01-26 上海广电(集团)有限公司中央研究院 信息家电软件升级方法及其升级数据的编码解码方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69802294T2 (de) * 1997-08-29 2002-05-16 Hewlett Packard Co Systemen zur datensicherung und -rückgewinnung
US6810398B2 (en) * 2000-11-06 2004-10-26 Avamar Technologies, Inc. System and method for unorchestrated determination of data sequences using sticky byte factoring to determine breakpoints in digital sequences
WO2004057497A2 (en) * 2002-12-19 2004-07-08 Koninklijke Philips Electronics N.V. Reordered search of media fingerprints
US7487169B2 (en) * 2004-11-24 2009-02-03 International Business Machines Corporation Method for finding the longest common subsequences between files with applications to differential compression
EP1887731A1 (en) * 2005-06-01 2008-02-13 Matsushita Electric Industrial Co., Ltd. Electronic device, update server device, key update device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1379335A (zh) * 2001-03-30 2002-11-13 松下电器产业株式会社 遥控程序下装系统
US20030163496A1 (en) * 2002-02-28 2003-08-28 Fujitsu Limited Differential data forming method, program, recording medium, and apparatus
US20040181561A1 (en) * 2003-03-14 2004-09-16 International Business Machines Corporation Real time XML data update identification
CN1570878A (zh) * 2003-07-11 2005-01-26 上海广电(集团)有限公司中央研究院 信息家电软件升级方法及其升级数据的编码解码方法

Also Published As

Publication number Publication date
US8108348B2 (en) 2012-01-31
US20090070367A1 (en) 2009-03-12
CN101382885A (zh) 2009-03-11

Similar Documents

Publication Publication Date Title
CN101382885B (zh) 一种数据文件的多版本控制方法及装置
CN101770446B (zh) 一种版式文件中表格识别方法及系统
EP0752673B1 (en) Information processing method and apparatus for searching image or text information
CN102081732B (zh) 一种版式识别模板方法及系统
CN101807208B (zh) 视频指纹快速检索方法
Van Rysselberghe et al. Reconstruction of successful software evolution using clone detection
CN101673266A (zh) 音频、视频内容的搜索方法
CN102193995B (zh) 一种建立多媒体数据索引、检索的方法及装置
CN105159892B (zh) 一种语料提取器及提取语料的方法
EP3093851B1 (en) Method and device for use when reassembling a fragmented jpeg image
CN113627132B (zh) 数据去重标记码生成方法、系统、电子设备及存储介质
US9524354B2 (en) Device, method, and program for processing data with tree structure
JP4960417B2 (ja) 可変長のデータ断片の開始・終了オフセットを決定する方法及び装置
JP4831787B2 (ja) 引用検出装置、そのプログラム及び記録媒体
CN111190937B (zh) 籍贯信息的查询方法、装置、电子设备及存储介质
Ravi et al. A method for carving fragmented document and image files
CN103870606A (zh) 一种网页信息提取系统及提取方法
CN102073682B (zh) 一种基于编码方式的文档数据恢复系统及其快速恢复方法
CN102270111A (zh) 一种指令译码方法和指令集模拟装置
KR101486235B1 (ko) 대용량 포렌식 이미지의 정보 추출 장치
US7016535B2 (en) Pattern identification apparatus, pattern identification method, and pattern identification program
CN101271468A (zh) 一种利用越界保护机制对字符串匹配进行加速的方法
JP6131765B2 (ja) 情報処理装置及び情報処理プログラム
JP3253657B2 (ja) 文書検索方法
CN113395586A (zh) 基于标记的视频剪辑方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant