一种具备版本控制能力的文件打包格式的制作方法

文档序号:6374707阅读:212来源:国知局
专利名称:一种具备版本控制能力的文件打包格式的制作方法
技术领域
本发明涉及一种文件打包格式。
背景技术
现有软件客户端资源通常采用打包方式存储,从而获得传输方便、资源保密、以及更加快速访问速度等优点。但其打包后生成的包文件仅包含单一版本的包内文件,因而无法在不同版本间切换,包括灰度发布在内的版本控制需求无法得以满足。其次若软件不同版本间的包内文件具有相同的内容,则在更新过程中则可能需要重复下载并更新之前版本中出现过的文件。造成下载、更新过程中时间的浪费。

发明内容

为了解决现有技术中存在的上述问题,本发明的目的在于提供一种具备版本控制能力的文件打包格式。本发明所采用的技术方案是
一种具备版本控制能力的文件打包格式,由文件数据和数据索引组成,所述文件数据用作包内文件的载体,所述数据索引包含各版本中包内文件在文件数据中的偏移值、文件标识信息。作为上述技术方案的进一步改进,每套文件打包格式包括一套文件数据,还包括一套或多套数据索引;进一步,每一套数据索引对应一特定版本的包内文件集合,使该文件打包格式可以在多个版本之间进行控制与切换,选择合适的打开版本。作为上述技术方案的进一步改进,所述文件数据和数据索引可以保存为单一文件,或是分割为多份文件存储。文件数据和数据索引的内容可以保存于本地文件中,或是数据库中,或是来源于某种协议支持下的自网络传输,文件数据和数据索引的存储方式可以为上述几种中的一种或多种,且不限定。进一步,所述数据索引由多个索引项组成,所述索引项包含文件标识和偏移值的对应关系。文件标识用于唯一标识一个文件,偏移值为文件标识对应文件在文件数据中的相对位置。进一步,文件数据中不包含数据索引,也不包含文件的打开方式相关的任何信息。本发明的有益效果是采用本发明后,打包到整个文件包中的文件具备多个版本,并可以随时切换整个包或包内文件的版本,在包格式中,每个文件更新的历史信息都得以保存,且在更新包过程中,之前版本中出现过的文件无需重复更新。


下面结合附图和具体实施方式
对本发明作进一步详细的说明。图I打包流程示意图。
具体实施例方式参照图I本发明提出了一种具备版本控制能力的文件打包格式,该文件打包格式由文件数据和数据索引组成,每套文件打包格式包括一套文件数据,还包括一套或多套数据索引。如图I所示,所述的文件数据用作包内文件的载体,为包内文件的存放提供场所,里面可以存储数量不限的文件。所述数据索引包含各版本中包内文件在文件数据中的偏移值、文件标识信息,如图I所示,数据索引由多个索引项组成,每个索引项中包含对应文件的标识和偏移值,多项索引项可以组成一套数据索引,每套数据索引中的索引项与文件数据中的文件—对应;包格式中每一套数据索弓I代表一个不同的版本,读取不同版本的文件内容,需要用到不同版本的数据索引;包格式通过不同版本的数据索引,实现对不同版本的包内文件的读取。进一步,客户端只需要一套数据索引即可读取数据库文件中的数据,无需存储所有版本对应的数据索弓I ;客户端只需要相应版本的索引即可读取数据文件中的包内文件,文件数据对应的其他版本的数据索引可以不在客户端存储,从而在客户端实现文件其他版本信息的保密。所述的文件数据和数据索引的存储方式不限定,可以保存为单一文件,或是分割为多份文件存储。其内容可以保存在本地文件中,或是数据库中,或是来源于某种协议支持 下的自网络传输。文件数据和不同版本的数据索引的存储可以做到完全分离,文件数据中不包含数据索引,也不包含文件的打开方式相关的任何信息,客户端在不知道索引信息的前提下,无法直接对数据库进行读取。本发明的文件打包格式在实际应用操作过程中,包括打包、更新、版本控制操作三种操作。打包负责将需要的文件名依照包格式写入到包中;更新过程将新增文件追加到包中;版本控制能够切换包格式的版本号,读取更新之前任意版本的文件。所述的打包操作通过打包工具完成,打包工具接受如下输入1.所需打包的文件目录或文件列表;2.打包后文件包的版本号;3.输出方式和输出位置;打包工具根据输入信息,从磁盘上读取相应的文件生成相应的文件包。其生成的文件包由文件数据和数据索引两个组成部分,文件数据为包内文件提供数据储存的场所,其内包含所有包内文件的数据,索引则是访问当前版本包内文件的入口,借助其可以找到包内文件在文件数据中的位置。所述的更新过程通过更新程序完成,更新程序从网络下载更新包,并将更新包中的内容追加到被更新的文件包中。更新包制作过程与打包过程一样,更新包在格式上与目标包格式相同。更新之前可以标识出之前版本中曾经出现过的又内容完全相同的文件,制作更新包时可以指定不将这一部分重复的文件写入文件数据,而只写入这些文件的索引。包格式通过更新过程将所新增或修改的包内文件文件追加包格式中,其追加方式为更新包文件数据直接追加在客户端文件数据后端;更新包的数据索引与被更新包的数据索引合并,并将其写入一份新的数据索引中,此数据索引为更新后文件包版本的数据索引。若在后续版本中增加数据库中内容相同的文件,则可以不必重复添加已经存在于数据库中的信息,而只需要将新的索引信息指向原有数据区域。所述的版本控制过程支持切换整个包格式的版本,方法是替换包格式相应的数据索引到指定版本,如此即可读取出指定版本中的所有文件。版本控制过程支持切换包内单一文件的版本,方法是提供此包内文件对应版本号索引项中的偏移值,如此即可读取出指定版本中的特定包内文件。采用本发明后,打包到整个文件包中的文件具备多个版本,并可以随时切换整个包或包内文件的版本,需要将包格式中的版本切换到历史版本时,只需要提供包版本对应的数据索引,读取特定版本的单一包内文件时,只需要提供此包内文件的索引信息;同时在包格式中,每个文件更新的历史信息都得以保存,且在更新包过程中,之前版本中出现过的文件无需重复更新。软件客户端采用本发明后,使得小规模发布的灰度发布功能得以实现,部分用户可以预先升级至灰度版本,待其稳定后方能升级所有客户端至此版本。同时,软件产品遇到严重问题后,包格式可以随时切换到之前的版本,切换版本无需网络传输差异文件的开销,从而减少因为软件缺陷而造成的损失。 以上所述仅为本发明的优先实施方式,只要以基本相同手段实现本发明目的的技术方案都属于本发明的保护范围之内。
权利要求
1.一种具备版本控制能力的文件打包格式,其特征在于由文件数据和数据索引组成,所述文件数据用作包内文件的载体,所述数据索引包含各版本中包内文件在文件数据中的偏移值、文件标识信息。
2.根据权利要求I所述的一种具备版本控制能力的文件打包格式,其特征在于每套文件打包格式包括一套文件数据,还包括一套或多套数据索弓I。
3.根据权利要求I或2所述的一种具备版本控制能力的文件打包格式,其特征在于所述文件数据和数据索引可以保存为单一文件,或是分割为多份文件存储,文件数据和数据索引的内容可以保存于本地文件中,或是数据库中,或是来源于某种协议支持下的自网络传输。
4.根据权利要求I或2所述的一种具备版本控制能力的文件打包格式,其特征在于所述数据索引由多个索引项组成,所述索引项包含文件标识和偏移值的对应关系。
5.根据权利要求2所述的一种具备版本控制能力的文件打包格式,其特征在于所述每一套数据索引对应一特定版本的包内文件集合。
6.根据权利要求I所述的一种具备版本控制能力的文件打包格式,其特征在于所述文件数据中不包含数据索引,也不包含文件的打开方式相关的任何信息。
全文摘要
本发明公开了一种具备版本控制能力的文件打包格式,由文件数据和数据索引组成,所述文件数据用作包内文件的载体,所述数据索引包含保存各版本中包内文件在文件数据中的偏移值、文件标识信息。本发明采用数据索引指向文件数据中的文件,当要读取文件数据中的文件时,需要提供数据索引;而且本发明中打包到整个文件包中的文件具备多个版本,并可以随时切换整个包或包内文件的版本,在包格式中,每个文件更新的历史信息都得以保存,且在更新包过程中,之前版本中出现过的文件无需重复更新。
文档编号G06F17/30GK102831204SQ201210282889
公开日2012年12月19日 申请日期2012年8月9日 优先权日2012年8月9日
发明者陈飞舟, 吴才忠, 刘畅 申请人:珠海金山网络游戏科技有限公司, 成都西山居互动娱乐科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1