多用户创作内容的版本控制方法和实现方法

文档序号:6549759阅读:201来源:国知局
多用户创作内容的版本控制方法和实现方法
【专利摘要】多用户创作内容的版本控制方法和实现方法。该方法采用特有的树形结构将创作内容分割成各种结构单元。各结构单元除了自上而下的树形结构关系外,还可单独设置各部分的关系。通过对各结构单元及其树形结构进行的各种操作过程的记录,形成版本库。用户可通过多种客户端与远程版本库进行交互,也可在本地形成版本库,实现多用户内容创作的版本记录与控制。与现有的版本控制方法相比,具有灵活、高效、可控性更强等特点。
【专利说明】多用户创作内容的版本控制方法和实现方法

【技术领域】
[0001] 本发明属于数学算法,操作方法、计算机软件领域,特别涉及多用户创作内容的版 本控制方法和实现方法。

【背景技术】
[0002] 在多人共同创作成为一种需求后,特别是在开放软件源代码的推动下,出现了以 下几种版本控制系统。第一种是传统的版本控制系统,其仍基于现有的文件系统,将文件放 在文档服务器中。其主要问题一是权限分配的问题,当文档的结构比较复杂或文档的结构 单元比较多或文档的结构正在发生变动或已经发生变动时,由文档的所有者对参与人员进 行的权限分配是几乎不可能的。二是如果修订版本仅记录修订信息,在最终版本输出时,需 要将基础版本与修订信息进行合并,将产生较大的系统额外的开销。三是由于对文档所有 的操作均记录在一个文档中,其文档无法进行结构化的优化,所以当进行较多参与人的查 询、添加删除等操作以及合并时,其操作的复杂度随参与人员的增多而增大,当人数增加到 一定程度时,系统的开销将非常大。另外,当文档需要以多个文件形式存在时,单个文件的 版本控制无法满足真正的需要,例如不能把所有源代码放进一个文件中进行控制。
[0003] 第二种是多文件的版本控制系统,例如目前比较流行的SVN等。多文件的版本控 制系统不再依赖于对单个文件的控制,在文件之外,建立起文件的监控系统,对文件的更改 等操作进行监控和记录。在用户操作时要建立该文件的副本(分支),通过对副本(分支)的 控制,允许多人同时修改,在提交后自动的赋予每次的变更一个版本。除此之外,用户的权 限管理系统也独立于文件系统之外,在检入检出时,对用户权限进行控制。由于文件的监控 仍基于现有的文件系统,一方面增加了系统管理的复杂性,另一方面由于文件系统层面的 更改无法记录,导致一旦在版本控制系统之外对文件夹进行删除、修改等操作,系统将很难 处理修改冲突,对版本控制系统之外进行文件操作将带来非常大的隐患。另外,由于多文件 的版本控制系统仅依赖于计算机自带的文件系统文件夹建立的文件之间的关系,文件之间 的关系只能按文件夹确定为简单的关系,其复杂性无法满足更复杂文档的需要,无法描述 复杂的文件关系。第四,由于记录的版本信息非常少,满足不了系统应用与扩展的需要,例 如以实时的方式对各版本或各部分进行拼接展示。最后,由于现有的版本控制系统的检入 检出机制,导致不能主动推送改变。
[0004] 第三种是基于树型结构和本地分支的版本控制系统,例如Git。其主要特点是,建 立与文件系统相对应的树形结构系统,文件及所在文件夹均以指针的形式存放在树形结构 中,对文件及所在文件夹的操作均将反映到树形结构里。在最初时,首先将本地文件库与远 程文件库进行同步,对本地文件的任何修改均将建立本地的副本,作为分支存储在本地,在 提交时,也作为特定用户的分支存在,由于其引入了树形结构的分支概念,所以不存在版本 冲突的概念,只有在需要合并时,才由文档的所有者(或后提交的人)负责找到差异并合并 提交。其主要问题,除了仍然基于现有的文件系统带来的问题之外,由于在操作之前,需要 将现有基础版本全部复制到本地,无法只对指定部分建立分支,带来占用空间较大、同步时 间较长等一系列问题,同时,如果分支较多,同步后的合并问题将会给整个系统带来巨大的 负担。
[0005] 也有的版本控制不基于文件系统,例如Google Docs,但基于单一的自上而下的模 式,文档的结构依赖于字体、颜色等格式,非常单一,没有对内容进行结构化,不利于扩展。


【发明内容】

[0006] 针对现有技术中存在的问题,本发明提出多用户创作内容的版本控制方法和实现 方法,其可以实现对多用户创作内容的结构优化管理的方法。
[0007] 为实现上述发明,提供一种多用户创作内容的版本控制方法和技术实现,其包括: 服务器、以创作内容分割的结构单元组成为树形结构进行存储的数据库和用于网络连接的 客户端。
[0008] 数据库存储的数据以多个结构单元组成的树形结构形式存储,其中所述树形结构 的每个结构单元及其承载的内容可单独进行多用户的编辑、删除、增加等操作,同时可实现 节点的合并、移动等操作。
[0009] 对用户创作内容进行结构化划分,也就是根据受管理对象的特性将内容分割为多 个组成结构单元,记录用户创作内容的其中一部分,并记录其他辅助信息,包括:识别ID, 时间,状态等辅助信息。树形结构节点均可表示一个结构单元或是结构单元的一部分,每个 节点包含的内容也可以有多个。
[0010] 若某些用户创作内容结构超出树形结构除本身自带的自上而下的逻辑关系,可以 通过节点本身提供的接口或通过输入层和表示层的控制进行定义。
[0011] 树形结构的所有操作均可进行多用户分解,包括:添加、删除、移动、拆分、合并等 操作;对节点包含的内容可进行多用户追加、删除、修改、调换位置等操作,树形结构针对 每个内容创作者的操作结果进行记录。树形结构进行操作,以及对节点包含的内容进行操 作时,系统将自动对每个用户的任何操作进行完整记录,形成各版本信息的元数据(版本记 录),以便在版本控制时进行查询、合并、撤销等操作。
[0012] 多个版本记录形成版本库,版本库不依赖于单一的存储方式,即可以记载单一用 户的版本记录和版本操作,也可以记载多用户的版本记录和版本操作,版本库可以存储在 远程服务器,也可存储在本地,当本地操作的计算终端没有与版本库连接时,系统将自动生 成本地分支,在本地进行存储,当版本库可连接后,系统可以自动或手工的形式,将本地的 版本记录上传到版本库中。
[0013] 树形结构及其节点的版本控制与权限控制是分离的,在多用户对节点进行操作 时,权限系统通过在节点中保存的权限信息来判断每一用户是否具有相应操作权限。

【专利附图】

【附图说明】
[0014] 图1为结构单元示意图。
[0015] 图2为树形结构节点的操作图。
[0016] 图3为可发生节点变化的操作图。
[0017] 图4为版本记录示意图。
[0018] 图5为涉及对树形结构进行操作形成的版本记录。
[0019] 图6为权限管理图不。
[0020] 图7为版本系统的输入输出示意图。

【具体实施方式】
[0021] 多用户创作内容的版本控制方法和实现方法 包括以下步骤:一、结构设计 1.本专利涉及的版本管理体系,首先要对内容进行结构化,也就是根据受管理对象的 特性将内容分割为多个组成部分单元。每个结构单元记录其中一部分,并记录其他辅助信 息(包括识别ID,时间,状态等辅助信息,可以定制辅助内容项)。参见附图1。例如文档、 Photoshop、CorelDraw、AutoCAD等都可以视为受控项目,并根据其格式特点进行结构化管 理。(图1)。
[0022] 2.本专利独创版本管理体系,所有结构化内容完全以节点构成的树形结构表示。 每个节点均表示一个结构单元或是结构单元的一部分,(根据所管理对象的不同,其树形结 构的节点内容可以是文字、文档、图片、多媒体影音文件、网址链接、标记指针、Xml节点、数 据库字段、数据流,甚至可以是上述内容的一部分);每个节点包含的内容可以有多个(例 如:可以是多属性结构体,Xml文件中一个节点下的多个属性名值对的映射,或者是数据 库中的多个字段,具体与选择的存储手段有关),甚至用户可以通过自定义选项进行节点定 义。
[0023] 3.除了树形结构本身自带的自上而下的逻辑关系外,还可以根据对树形结构中 节点的其他定义来实现任意节点内容之间的结构关系(例如可以定义多级关系),在该树型 结构中,一个节点可以是整篇文档,可以是文档一部分(例如段落),可以是一个文件夹,可 以是与前后节点相关联的其他结构,也可以是其他以树形结构为基础的结构(例如源代码 之间的关联)。这些超出树形结构本身自带的上下级关系的其他关系,可以通过节点本身提 供的接口进行定义,也可通过其他方式进行明确,例如通过输入层和表示层进行控制。 二、操作关系 节点构成的树形结构的所有操作均可进行分解。
[0024] 1、节点树形结构的基本操作:添加、删除、移动节点等,参见附图2 ; 1)添加:添加操作可以将某一单独节点或某一树结构的根节点添加成为指定节点的 子节点,并可以指定新加入的节点与其兄弟节点的顺序关系。当被添加节点是一个单独节 点时,如果添加操作没有指定将新节点添加到某一已存在的节点之下,则新节点将成为一 个树结构的根节点。当添加一个节点到父节点时,在添加操作之前需要判断指定的父节点 是否是被添加节点的子孙节点,若是,将导致无限循环添加,则拒绝此次添加操作。系统也 可定义其他的添加规则,例如,一个节点不能作为两个节点的子节点等,取决于系统的实 现。
[0025] 2)删除:删除操作将指定节点及其相应子树一并删除,此删除操作可以是永久删 除,也可以是向该节点添加删除标记。如果永久删除一个树结构的根节点,则该树结构将被 整体删除。
[0026] 3)移动:移动操作可以将某一个树结构中的某一节点及其子树从其原父节点下 移动到该树结构的另一节点下,成为其新父节点的子节点,并指定该节点与其新的兄弟节 点间的顺序关系。当被移动的节点存在子孙节点时,在移动操作之前需要判断被移动的节 点是否被指定移动到其子孙节点之上,如果存在这种情况,将导致无限循环添加,则拒绝此 次移动操作。(图2)。
[0027] 2、对节点所包含内容的操作,可以追加、删除、修改内容、调换位置等; 1)增加内容:增加操作将新创建的某一种类型的内容实例加入到一个节点的内容列 表中,并可以指定新加入的内容在内容列表中的位置。
[0028] 2)删除内容:删除操作将指定的内容从节点的内容列表中删除,可以是永久删除 或者是添加删除标记。
[0029] 3)修改内容:开放接口为用户提供直接修改内容的方法,即直接修改节点的内容 列表中的内容实例。
[0030] 4)调换位置:如果表现层依据节点的内容列表中内容的顺序关系进行节点的内 容展示,可以通过调换位置操作来改变各内容实例在内容列表中的顺序关系,以此来改变 表现层的内容展示行为。
[0031] 3、对节点所包含内容的内部的操作对节点的树形结构产生影响的操作。例如:完 全删除节点内容引起删除节点操作,将现有节点内容分段引起的拆分节点的操作,将多个 节点合并引起的节点内容变化的操作; 1)当包含内容的节点内容被清空,系统认为进行节点的删除操作,节点本身会通过标 志位的方式设置为删除状态。
[0032] 2)当包含内容的节点内容需要更细粒度的划分时,采用节点拆分的方式。被拆分 的节点拆分后形成多个不同的新节点。(系统记录所有的拆分过程,为方便还原) 3)多个节点合并时,系统将生成新的节点。(系统会记录新节点是由哪几个节点合并 而成)。
[0033] 4、批量添加、删除树形结构中的节点或其中的某一部分,参见附图3。
[0034] 1)批量添加:批量添加操作将多个节点或树的根节点的按顺序添加到某一个目 标节点下成为其子节点,也可以指定将需要添加的节点添加在在目标节点的某一子节点的 前面或后面。当被添加的节点中存在拥有子孙节点的节点时,在批量添加操作之前需要判 断指定的添加位置是否是这些节点的子孙节点,若是,则拒绝此次批量添加操作。
[0035] 2)批量删除:批量删除操作将某一节点的子节点中的一部分或全部节点及这些 节点的相应子树一并删除,批量删除操作可以是永久删除这些节点也可以是向这些节点添 加删除标记。(图3)。
[0036] 5、节点的控制操作也可以以实现了操作接口的插件形式进行自定义。应用时可 以对节点操作实现抽象定义,并提供默认版本的具体实现。在应用过程中,可以继承抽象定 义后根据需要定制实现其它版本的实现。这样就可以实现定制。
[0037] 三、版本记录 区别于传统的锁定式的版本控制,本专利涉及的版本管理系统是记录式的,针对每个 内容创作者的操作结果进行记录。在对节点的树形结构进行操作,以及对节点包含的内容 进行操作时,系统将自动对任何操作进行完整记录,以形成各版本信息的元数据(版本记 录),以便在版本控制时进行查询、合并、撤销等操作。
[0038] 1.在涉及对单个节点的内容进行操作形成的版本记录中,主要包含操作的相关信 息,例如用户Id,操作的时间、操作类型、审定的结果等。一般的,为便于操作,可以将本次操 作后的内容结果记录到版本记录中,但一些实现也可将本次操作后的内容结果记录到其他 指定位置,甚至有的实现仅仅记录操作本身,例如:增加、删除的内容等,参见附图4。
[0039] 2、在涉及对树形结构进行操作形成的版本记录中,主要包含操作的相关信息,例 如用户Id,操作的时间、本次操作之前树形结构的原始状态、本次操作之后树形结构的最终 状态、操作类型、审定的结果等,参见图5。
[0040] 3、上述的版本记录,可以存放在节点内部,也可以将其存放在节点外部的指定位 置,例如:数据库的单独一张表、文件系统中的一个单独文件等。
[0041] 4、多个版本记录形成版本库,版本库不依赖于单一的存储方式,可以为数据库, 也可以为文件(例如自定义格式的文件或Xml文件等)或其他的存储方式。
[0042] 5、由于版本库即可以记载单一用户的版本记录和版本操作,也可以记载多用户 的版本记录和版本操作,所以支持分布式的创作过程。例如,可以指定一个集中的记录所 有版本的版本库为基础版本库,用户的所有内容及版本记录均将提交到该版本库中。也可 以在进彳丁内各创作时,不指定集中地版本库,在内各创作后,再指定个版本库为基础版本 库,其他用户的所有内容及版本记录均将提交到该版本库中。
[0043] 6、版本库可以存储在远程服务器,也可存储在本地。当本地操作的计算终端没有 与版本库连接时,系统将自动生成本地分支,在本地进行存储,当版本库可连接后,系统可 以自动或手工的形式,将本地的版本记录上传到版本库中。
[0044] 7、由于可以对节点内容变更、树形结构变更的每个版本以不同状态进行记录,所 以整个系统相当于一个完整的作品创作过程库。例如,下面的操作是可行的: 1)每次用户生成的版本,初始为草稿状态。每个用户对于每个节点可以有多个草稿状 态的版本。草稿状态的节点版本对其他用户不可见。
[0045] 2)只有创作用户主动把草稿状态的版本设置为提交的状态,其他用户才可以看 到。
[0046] 3)如果是对于一个完整作品来说,真正选用的版本可能还需要具体的的管理人员 进行审核,或通过所有用户评分的方式真正选用某一具体的版本内容。
[0047] 4)对于用户评分方式选取真正版本的情况,节点内会保存所有有权限用户针对 每一版本的评论信息和打分。评论内容和打分以节点包含内容方式体现。
[0048] 四、应用设计 1.节点本身以及节点构成的树形结构与权限控制是分离的,节点可以包括对权限的 定义,也可以在外部进行定义。系统通过权限系统实现对节点操作权限的控制。
[0049] 1)本系统中节点内容的丰富、多样,使系统可以在每个节点中灵活的定义和使用 权限控制所需的信息。例如,节点中保存用户(组)及其持有的对于节点的操作权限的信息, 在用户对节点进行相应操作时,权限系统通过在节点中保存的权限信息来判断用户是否具 有相应权限,参见图6。
[0050] 2)同样如果需要在外部定义节点的权限控制,系统也不会因为数据结构所限而作 任何方式或范围限定。通过在外部权限系统中定义节点与用户(组)以及各种操作的映射 表,用户在对节点进行各种操作前,系统先通过外部权限系统的调用来判断用户是否具有 相应操作的权限,如果是,则继续执行操作,如果否,则拒绝用户的当前操作。
[0051] 2.本专利涉及的版本管理系统中,节点的控制操作与最初的输入层是分离的,可 以单独设置。可以通过实现了输入接口的插件任意定义输入的方法。因此,本专利涉及的 版本管理系统将支持所有涉及版本记录与控制的计算机操作,例如网页输入、本地计算机 软件直接输入、移动终端输入、常见格式文档直接导入等。
[0052] 1)本系统的版本控制部分完全独立其他系统,以提供的通用输入接口方式与其他 系统进行交互。
[0053] 2)基于上一条的条件,输入部分不局限于某一种或某几种方式,而是所有可以实 现通用接口的设备或系统。
[0054] 3.本专利涉及的版本管理系统中,节点的控制操作与最后的显示层(输出层)是分 离的,可以单独设置。可以通过实现了显示接口的插件任意定义显示的方法。因此,本专利 涉及的版本管理系统将支持所有涉及版本记录与控制的计算机操作,例如网页输出、本地 计算机软件直接输出、移动终端输出、常见格式文档直接输出等,参见附图7 1)对于输出部分,本系统提供标准的输出接口,不同内容以不同的方式输出。
[0055] 2)基于上一条的条件,输出的接收端不局限于某一类或某几类,而是所有可以接 收标准数据格式的任何设备和系统。(文字:json、xml、html、标准文本......视频、照片 等)图7。
【权利要求】
1. 多用户创作内容的版本控制方法和实现方法,其包括:对创作内容进行分割的结构 单元及其组成为树形结构的各种操作进行记录、存储的版本库和用于网络连接的客户端; 其特征在于包括下列步骤:所述版本库存储的数据以多个结构单元组成的树形结构形 式存储,其中所述树形结构的每个结构单元及其承载的内容可单独进行多用户的编辑、删 除、增加等操作,同时可实现节点的合并、移动等操作。
2. 根据权利要求1所述的多用户创作内容的版本控制方法和实现方法,其特征在于下 列步骤:对用户创作内容进行结构化划分,也就是根据受管理内容对象的特性将内容分割 为多个组成部分单元。
3. 根据权利要求2所述的多用户创作内容的版本控制方法和实现方法,其特征在于下 列步骤:所述树形结构的结构单元记录用户创作内容的其中一部分,并记录其他辅助信息, 包括:识别ID,时间,状态等辅助信息;也可以在结构单元之外记录上述信息。
4. 根据权利要求2或者3所述的多用户创作内容的版本控制方法和实现方法,其特征 在于下列步骤:所述树形结构节点均可表示一个结构单元或是结构单元的一部分,每个节 点包含的内容也可以有多个,分别表示结构单元所能承载的相关信息。
5. 根据权利要求4所述的多用户创作内容的版本控制方法和实现方法,其特征在于下 列步骤:若某些用户创作内容结构超出所述树形结构除本身自带的自上而下的逻辑关系, 还可以通过节点本身提供的接口或通过输入层和表示层的控制进行定义。
6. 根据权利要求4所述的多用户创作内容的版本控制方法和实现方法,其特征在于 下列步骤:所述树形结构的所有操作均可进行多用户分解,包括:添加、删除、移动、拆分、 合并等操作;对节点包含的内容可进行多用户追加、删除、修改、调换位置等操作;节点内 容的操作也可引起树形结构的变化,所述树形结构针对每个内容创作者的操作结果进行记 录。
7. 根据权利要求6所述的多用户创作内容的版本控制方法和实现方法,其特征在于下 列步骤:多用户对所述树形结构进行操作,以及对节点包含的内容进行操作时,系统将自动 对每个用户的任何操作进行完整记录,形成各版本信息的元数据版本记录,以便在版本控 制时进行查询、合并、撤销等操作。
8. 根据权利要求7所述的多用户创作内容的版本控制方法和实现方法,其特征在于下 列步骤:多个版本记录形成版本库,版本库不依赖于单一的存储方式,即可以记载单一用户 的版本记录和版本操作,也可以记载多用户的版本记录和版本操作;版本库可以存储在远 程服务器,也可存储在本地,当本地操作的计算终端没有与版本库连接时,系统将自动生成 本地分支,在本地进行存储,当版本库可连接后,系统可以自动或手工的形式,将本地的版 本记录上传到版本库中。
9. 根据权利要求7所述的多用户创作内容的版本控制方法和技术实现,其特征在于, 所述树形结构及其节点与权限控制是分离的,在多用户对节点进行操作时,权限系统通过 在节点中保存的权限信息来判断每一用户是否具有相应操作权限。
10. 根据权利要求1-9所述的多用户创作内容的版本控制方法和技术实现,其特征在 于,多用户中的每个用户都能通过客户端对所述树形结构中具有相应权限的每一节点进行 操作,形成版本记录并上传到版本库中;位于网络上的多个版本库既可以是并列存在的,也 可以是主-从关系的,即,既可以指定基础版本库,其他版本库都与基础版本库进行同步, 也可在开始不指定基础版本库,在需要同步时进行指定,进行同步操作;版本控制与输入、 输出控制是分离的,增加了系统的灵活性。
【文档编号】G06F17/30GK104063446SQ201410267304
【公开日】2014年9月24日 申请日期:2014年6月17日 优先权日:2014年6月17日
【发明者】梁冰, 冯昀晖, 刘玉麟 申请人:沈阳龙天科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1