修订控制与版本控制:真正的区别是什么
修订控制和版本控制是大多数从业者都在互换使用的近义词。本文只指出两者之间那一处真正的细微差别,而不去发明一个实际上并不存在的区分。
修订控制和版本控制,是同一套底层做法的两个名字——随时间追踪文件的带日期改动——两者之间确实存在的差别,是侧重点不同,而不是两套互相竞争的系统。
简而言之
- “修订控制”和“版本控制”描述的是同一套做法;大多数从业者把这两个术语互换使用,不会损失任何意义。
- 确实存在细微差别的地方:修订通常指单条带日期的改动条目,版本通常指整份文件的结果状态。
- 别为同一个概念建两份日志——一份版本历史,不管叫哪个名字,就够了。
- QueryChart 的免费版本历史(变更日志、比较版本、还原)不管你的组织偏好哪个词,运作方式都一样——见 /features/version-control。
- 这个细微差别在一份独立的变更日志上体现得最明显;关于怎么搭建一份,见 /zh/guides/如何创建文件修订历史。
同一份记录,两种叫法
一位质量经理问自己的登记册该叫“修订日志”还是“版本历史”,得到了三位同事三个信心十足却互相矛盾的答案。三个人说的其实是同一份文件。这不是一个值得去修补的术语缺口——它说明这两个词在同一句话里都在起真实的作用,只是各自描述着同一件事的不同粒度,而不是两件不同的事。
值得留意的正是这个粒度差别。“修订”是描述一次带日期、有归属的单次改动更自然的词——变更日志里一行记录的正是它。“版本”是描述这次改动应用之后、整份文件所处的那个结果状态更自然的词——读者打开来读的正是它。修订是一步;版本是这些步骤走到的地方。下面这张图表之所以叫文件修订日志,正是因为这个原因:里面的每一行都是一次修订,而“当前版本”不过是这份文件在它最近一次修订结案之后所处的状态。
这是这个系列里范围最窄的一组对比。变更控制和文件控制确实是更宽泛的流程,把版本化当作其中一种机制来用——见 /zh/guides/版本控制与变更控制的区别 和 /zh/guides/版本控制与文件管理的区别。修订控制和版本控制不是那种类型的对子:大多数从业者、大多数标准、大多数软件都把这两个词互换使用,不会有任何意义上的损失,而 QueryChart 自己的免费版本历史——一份变更日志、一个比较版本视图、一键还原,见 /features/version-control——不管你的组织偏好哪个名词,运作方式都完全一样。
如果你要找的正是那个通用定义,/zh/guides/什么是版本控制 有完整介绍。本文假设你已经知道那个定义,回答的是它之下更窄的那个问题:这个用词选择重不重要,重要在哪里。
一份修订日志,逐行展开
看一次单独的改动作为一条带日期、有归属的修订,走过五条泳道——并看清这份日志在哪里不再谈论这条条目,转而开始谈论这份文件的当前版本。
一次申请,在它成为一次修订之前
图表从“针对受控文件提出变更申请”开始,进入“提交变更申请,注明原因与目标文件”,到达关口“变更是否获准登记?”——如果答案是“否”,就到达“申请被驳回,未予登记”,而不会真正成为一条条目。
开出条目,而不是编辑文件
“开立一条待处理登记条目”开始了这条记录,“分配条目编号并关联文件”给这次修订一个独立于文件本身的编号,“将变更指派给执行人”点名谁会去实施——这是日志新增了一行,而这一切都发生在文件本身有任何改动之前。
改动,然后是对照自身说法的一次核对
“在文件中实施该变更”和“记录变更前后描述、执行人与日期”,是这次修订本身;“将登记条目与已实施的变更进行核对”“是否已对照文件核实?”和“差异出在文件还是登记条目?”负责抓出条目所说的和文件所显示的之间的不一致。
结案条目,产生当前版本
“结案该登记条目”和“通知申请人变更已完成”结束了这次修订,“在定期审计中抽查已结案条目”是这份日志随时间赢得信任的方式,而“修订日志条目结案,随时可供审计”正是读者此刻会称之为这份文件当前版本的那个状态。
运作方式
给你自己的登记册选一个词,然后别再反复争论
为你组织的登记册决定用“修订日志”还是“版本历史”,把它放进登记册自己的标题和列标题里,然后就此打住。让不同团队用不同的词各说各话,为完全相同的行争论不休,浪费的时间比这个选择本身值多少要多得多。
给每一次修订它自己的一行,而不是一个被递增的字段
在示例图表里,每一次修订都是它自己那个文件形状的行,带着在“分配条目编号并关联文件”里分配的独立编号,而不是一个被你覆写的计数器。用同样的方式搭建你的日志:一次改动是一条新记录,不是对上一条的编辑。
在条目里记录改了什么,而不只是记录“有改动”
“记录变更前后描述、执行人与日期”这一行值得原样照搬:写清字段或条款的名字、它的旧值、它的新值、谁做的改动,以及什么时候。一条带日期却没说清动了什么的行,不是一条修订条目,只是一个时间戳。
在结案之前,把条目和文件核对一致
“将登记条目与已实施的变更进行核对”和它的“是否已对照文件核实?”关口之所以存在,是因为条目和文件会漂移——一份在改动完成之前写好的说明,或者一次改动的范围超出了申请所说的。在关闭这一行之前,把不一致的情况送回错的那一边。
在文件本身已经存在于 QueryChart 里的地方,让日志自己记录自己
如果受控文件本身就是一张 QueryChart 图表,它的变更日志已经自动记录了是谁改了哪个字段、从什么值改成了什么值,每一次编辑都是如此,无需设置。你不需要把上面那些修订行当成一张独立的表格手工维护——见 /features/version-control。
应避免的错误
为一个概念建两份日志
为同一份文件同时维护一份独立的“修订登记册”和一份独立的“版本历史电子表格”,几乎保证两者会在有人只更新了其中一份的那一刻就不再一致。只保留一份日志;叫你组织偏好的任何一个名字。
把词汇之争当成了交付成果
花一个小时去纠结一列该写“修订”还是“版本”,是一个小时没有花在记录审计员或同事真正需要的那些改动前后的值上。选定其中一个词,然后去记录那个字段。
因为条目“明显”和文件相符就跳过核实
“是否已对照文件核实?”之所以存在,是因为条目和文件有时确实会不一致——说明是在改动完成之前写的,或者改动的范围超出了申请所说的。跳过这个检查,会把日志变成一种愿望,而不是一条记录。
用删除来处理一条错误的条目,而不是用一条新条目来更正
一条后来被发现是错的修订条目,应该用一条注明这一点的新的带日期条目来更正,而不是被移除。一份连自己犯过的错都不见了的修订日志,一旦有人注意到这一点,可信度就没了。
在 QueryChart 中搭建你自己的修订日志
QueryChart 里的每张图表都会自动保留这份记录,不管你用哪个词——打开一张,亲自看看它的变更日志。
相关指南
常见问题
“修订”和“版本”是一回事吗?
在大多数用法里是的——这两个词描述的是同一份底层记录,在两者之间切换,不会改变任何机制。真正出现差别的地方,是一种粒度上的差别:修订通常指单次带日期的改动,版本通常指这次改动应用之后、整份文件所处的结果状态——在上面的图表里,每一行是一次修订,而流程另一头出来的那份文件,就是当前版本。
我的日志应该叫“修订日志”还是“版本历史”?
看你的组织、标准或软件已经在用哪一个——ISO 9001 的文档通常说“修订”,而大多数 SaaS 产品说“版本”(QueryChart 也是,见 /features/version-control)——你自己登记册内部保持一致,远比选哪个名词重要。不要在同一个产物上并行使用两个术语。
这个区分对审计有影响吗?
没有大多数人以为的那种影响。审计员核对的是每一次改动是否带日期、有归属、可检索——不是登记册用了哪个名词。更重要的是不要把“修订控制”和完整的文件控制生命周期混为一谈:给一次改动编号和端到端地控制一份文件之间的区别,见 /zh/guides/如何创建文件控制流程。
这个细微差别在实践中到底体现在哪里?
最直接体现在一份独立的变更日志或修订登记册里——一个存在的唯一目的就是列出带日期的单条条目的产物,“修订”比“版本”描述得更精确。关于怎么搭建这样一份日志,见 /zh/guides/如何创建文件修订历史;关于本文假设你已经知道的那个更宽泛的定义,见 /zh/guides/什么是版本控制。
