修订版本¶
文档与修订版本直接关联,而非与物理文件直接关联。一个文档可能拥有一个或多个修订版本,这些修订版本可按一定的方式组织。
修订版本的产生¶
在创建一个新文档时,服务端将同时为其创建一个修订版本,并将文档的当前修订版本指向它。
当尝试写入一个已存在的文档时,服务端将为文档创建一个新的修订版本,该修订版本将以文档的当前修订版本为父修订版本。与此同时,服务端将指定这一新的修订版本为文档新的当前修订版本。不过,直到与该修订版本关联的文件被激活之前,该修订版本都将处于不活跃状态。服务端将在尝试获取文档的最新修订版本时忽略不活跃的版本,并检查其父修订版本是否活跃,直到找到活跃的修订版本为止。
若自当前修订版本上溯未找到任何活跃的修订版本,视服务端实现的差异,该文档可能被视为不存在,或在得到访问尝试时抛出其他错误。
修订版本的分叉¶
在为文档创建新的修订版本时,可以指定从某个过去的修订版本分叉,而非一定以当前修订版本为父修订版本。也可以令新的修订版本不以任何修订版本为父修订版本,以为文档创建一个空白分支。
Note
分支的存在是事实性而非规范性的,它是一种对现象的理解而非受到明确支持的功能。
修订版本的删除¶
可以删除文档的特定修订版本,文档的当前修订版本除外。
在删除特定的修订版本时,若有其他以该修订版本为父修订版本的修订版本,服务端将把这些修订版本的父修订版本指定为待删除的修订版本的父修订版本(如果有),无论新的父修订版本是否活跃。
Note
由于创建新的修订版本时仅会指定活跃的修订版本为父修订版本,因此修订版本的删除操作通常不会指定到不活跃的修订版本。