分支与合并:内容管理器的梦想还是技术信息写作者的噩梦?

任何写作者的梦想都是写出完美的内容。写作者在单一会话中从头到尾写出完美的内容。从来不需要更新,因为它已经完美。

一个不切实际的梦想

这样的文件会关于什么方面呢?如果文件描述的是业务流程,这个流程也必须是完美的。如果不是,我们完美的文件则需要随着流程本身的改变而更改。如果文件是机器维护手册,则机器本身必须是完美的。为了改善机器而更改它的设计,需要更新手册内容。

当然,这是不切实际的场景。我们知道,根本不存在这样的文件。我们书写的主题性质在不断变化,这会阻止我们实现完美。完美可能是写作者的梦想,但却不现实。

现实

在现实中,书写文件是一个反复的过程。在我们满意地提交可发表的终稿之前,往往需要书写多个版本的内容草稿。作者对自己的内容满意后,需要将文件提交给审稿人进一步修改。最后,文件会等待审批。

但文件的生命并不会到此结束。如果我们记录的业务流程发生变化,就需要对文件进行相应的更新。如果机器安装了改进的组件,我们需要确保更改手册。文件需要再次返工、审稿和编辑。

这是所有技术信息写作者都非常熟悉的常见场景。

图 1:简单的文件版本工作流程

合适的工具可以帮助我们在该更新周期中管理变化。大多数编辑软件都包括更改跟踪功能。这使您可以记录自己的更改或查看审稿人的建议。如果是相同的编辑人员编辑所有部分,该工具会非常有效,但如果并非如此时会怎样?即便使用了更改跟踪功能,也难以在若干文件版本中管理变化。对于这个使用案例,比较工具是最好的解决方案。它们能够准确识别并突出显示在一系列文件版本的变化,而不必跟踪更改。这些工具甚至可以生成变化跟踪条目,使您可以在文本编辑器中查看修改。

噩梦

迄今为止的工作流程都是线性的,但我们如何应对更加复杂的工作流程?为此,我们需要使用分支功能。使用分支功能的原因很多。我们可以针对多个产品版本或发布管理用户文件。该用途被称为发布管理。分支功能还用来分开新产品功能的文件。如果不确定哪个产品发布将使用新功能,功能分支能够在不打断主要分支的情况下继续。功能齐全后,它的文件会包含在相应的发布中。

分支功能通常用来管理产品变型,例如特定平台的文件。主要分支拥有常用文件,而进一步的分支则拥有具体平台的文件。

所有分支策略的常见方面是需要能够通过分支之间的变化。而如何实现则将取决于如何管理和维护分支。

图 2:使用简单分支模型的复杂工作流程

试想一下,产品文件工作流程从图 1 所示的简单工作流程开始:简单的文件版本工作流程。产品版本 2 的文件已经开始,而作者也在进行版本 1.2 的更新。版本 2 的文件保留在它的主要分支中。版本 2 完成后,针对版本 1.2 进行修改。这些都是包括在版本 2 中的相关内容,以创建版本 2.1,但是我们如何包括那些变化?首先,我们需要知道变化的是什么。为此,我们可以使用比较工具。但是,我们需要将它们应用到文件的版本 2 中。没有合适的工具,这必须是手动过程。作者可以使用剪切和粘贴功能,或并排查看文件,并手动编辑版本 2,以便包括变化。即使是使用简单分支模型,例如图 2 中所示:使用简单分支模型的复杂工作流程会导致难以管理。当分支功能变得更加复杂时,我们会发现我们的处境犹如噩梦一般。

梦想着新的梦想

我们如何从这个噩梦中醒来?我们需要梦想一个新的梦想,它包括适当的工具来帮助我们管理情况。我们需要一个工具,它可以消除手动应用变化的过程,并避免潜在的人为错误。我们需要使用合并工具。

合并工具将识别分支之间的差异,并将一个分支的变化合并到另一个分支。它适用于前面讨论的所有分支场景。对于“进一步的分支”,它可以在功能齐全后将分支合并回主干。在发布管理中,它可以将以前版本中进行的编辑合并到稍后版本的分支中,以确保它们获得更新。

驱逐噩梦

源代码控制系统功能合并工具适用于执行分支之间的合并操作。虽然它们在很多情况下都获得了成功,但 XML 的结构允许更智能合并。这是因为结构本身会通知合并操作。

结构化的 XML 合并工具提供以下功能,好处明显高于基于线的合并工具。

形成良好的结果

这是将内容存储为结构化的 XML 时的关键要求。基于线的合并工具可能会打破 XML 内容的结构,使解析不再可能。XML 合并工具必须能够保证所有输出都可解析。

有效的结果

扩展前面的功能,有效针对 DITA 等特定 XML 语法,是我们使用文件工作流程结果的关键。合并工具必须能够理解此类语法的限制。它必须以不打破内容有效性的方式呈现输出。

冲突更少

合并文件时,始终会在某一阶段存在冲突。当多位作者修改内容的相同区域时便会发生冲突。不了解 XML 语法的合并工具可能会识别 XML 上下文中不相关的更改,例如更改属性的顺序。这将导致不必要的无益冲突。支持 XML 的合并工具可以通过忽略这种错误更改,最大限度地减少发生冲突的数量。

其他功能

进一步的功能,例如“优选”要应用的更改,通过 自动解决基于规则的冲突和定制更改的显示力度来简化工作流程,提供额外的功能来让 XML 合并工具区别于它的备选方案。

总结

管理内容的版本是一项复杂的任务,但对于许多写作团队的内容战略而言非常关键。鉴于合适的工具,了解结构化内容的比较和合并工具以及正确的策略、恰当的分支模型,便可以通过梦想使用的解决方案驱除噩梦并取而代之。