a — label
标签:冻结一个时间点
一个日期时间戳。打标签即捕获内容在该时刻的完整状态。
- 可据此查看、导出、分支、发布该时刻的内容版本
- 因为 XDocs 保留分支上每个文件的所有版本,标签就是可靠锚点
- 翻译完整、无断链时打标签,价值最高
何时用确定发布点、留可回滚快照
release management · standard operating procedure
产品发布、并行维护、海外翻译,都会让同一份文档长出多个版本。XDocs 不做散落的副本——每一次分支复制都记在同一条 lineage 上,可对比、可合并、可追溯。
同一 lineage 下,版本跨分支连接。合并与翻译追踪,都依赖这四段标识。
一句话:让「某份文档」能准确对应「某个产品发布」。产品生命周期因行业而异——有的要同时维护同一产品的多个版本,有的多个子产品共享部分内容。XDocs 不预设一种流程,而是给你三个可组合的工具。
1.0 要发布了,怎么冻结此刻的内容状态,以后再回溯?
1.0 和 2.0 要并行开发,怎么让两组内容互不干扰?
同一份内容要出两个客户版本,怎么控制哪些内容、什么外观?
不要混用:标签管「时间点」,分支管「空间隔离」,发布配置管「输出形态」。
a — label
一个日期时间戳。打标签即捕获内容在该时刻的完整状态。
何时用确定发布点、留可回滚快照
b — branch
一组独立隔离的文件。文件内的链接不会跨分支。
何时用并行维护多个产品版本
c — publish profile
一组 DITAVAL 属性与/或发布参数,在发布时生效。
何时用同一内容出多个变体
理解这一节,就理解了 XDocs 分支管理的全部价值——副本不占空间,版本却能跨分支追踪与合并。
示例:Getting_Started.xml 在 Trunk 上已有 v1、v2;从 v2 分支复制到 Branch 01,成为该分支的 v1;在分支上修改后形成分支 v2。因共享同一 lineage,分支上的改动可合并回 Trunk。
文件首次复制到某分支,即成为该分支的 Version 1。这本质上是文件版本的虚拟副本,避免 CMS 里塞满完全相同的拷贝。
文件在某分支上被签出并再次签入时,CMS 才创建新版本。此时新副本只存在于该分支,各分支版本通过文件名与 lineage 相连。
同一文件在每个分支上只能存在一个分支副本。可以把改动合并回去,合并程序会依据 lineage 追加新版本,而不是新建一条线。
复制时点的两种选择:用「As of Date: now」复制当前头版本(如把 Trunk 的 v2 复制到新分支);或指定历史日期,复制某个旧版本。两种情况下,首次落到目标分支的都是 Version 1。
从项目定义到分支发布,八步走完一次完整的发布分支操作。
操作入口与权限:Branch 选项卡包含 Copy Project Files(按项目整体复制)与 Copy Files(逐个文件复制)。访问 Branch 选项卡,用户必须属于内置用户组 XDocsBranchAdmin,可在 CM Admin 的 Security - Groups 中添加。
Browse 选项卡顶部的四个选择器决定了你看到什么:Project(项目)、Branch(分支)、Language(语言)、As of Date(内容时点)。
项目定义分支、源语言、目标语言(如适用)以及资源集合的 home folder。它是后续所有复制的边界——Copy Project Files 正是以项目定义为范围。
内容在 Trunk 上定稿、发布,形成 v1。此时文件已建立 lineage,后续所有版本都会归属这条主干。
用日期时间戳标记该次发布。若后续需要回溯、导出、重新分支或重新发布,这个标签就是精确入口。
分支复制前先运行 Localization 选项卡的 Status 报告,确认有多少译文已过期。这直接决定你该选哪种翻译分支策略。
查看 Branch 报告中的链接状态。若存在 unresolved 链接,打开 View > Outgoing Links 面板定位涉及的具体链接,先修再复制。
选择 Copy Project Files(整体)或 Copy Files(按文件),指定源项目/分支与目标项目/分支,按需选择 As of Date。复制完成后,目标分支上生成该文件的 Version 1。
在分支上编辑内容、执行翻译、发布输出。需要输出变体时,在发布对话框中选用对应的 Publish Profile。
执行 Branch Copy 搜索并查看 Branch Copy Report,比较两个分支上哪些内容相同、已变更、为新增。共享同一 lineage 的变更,可从一个分支合并到另一个分支。
Copy Project Files 与 Copy Files 都能同时复制源语言与目标语言内容。但译文与源文不同步时,会出现断链。
使用 Copy Project Files 时,整个分支的文件成员范围由源语言项目文件集决定(即 CM Admin 项目设置中 DITA map、文件、文件夹所定义的范围)。随后 XDocs 会把目标语言文件限制为与源语言匹配的子集。
因此,如果译文已过期——某个文件在源语言项目文件集中已不存在,但目标语言内容仍在引用它——分支复制时这个目标语言文件不会被找到,链接会被标记为 Unresolved,并在分支上留下占位符(例如图片或 xref 的未解析占位)。
| 策略 | 做法与代价 |
|---|---|
| 分支复制之后再做本地化 | 先把源语言与目标语言内容一起复制到分支,然后在分支上跑一轮新的本地化周期,更新分支上的译文。 |
| 分支复制之前先做本地化 | 先跑本地化周期,让目标语言内容处于最新状态,再进行分支复制——复制过去的内容从一开始就是同步的。 |
| 不复制目标语言内容 | 只分支复制源语言内容,然后在分支上跑本地化周期,用 XDocs Localization 导入全新译文。适合译文长期滞后、历史包袱较重的场景。 |
三条最佳实践:
① 规划分支复制排期时,把本地化周期一并考虑进去。
② 若打算复制译文,先跑一遍 Localization Status 报告,心里有数再动手。
③ 若希望复制的是「译文完整、无断链」的那个版本,就用标签指定当时的日期时间去复制;复制完成后,再把较新的源语言版本单独复制过去。
内容的差异靠分支隔离,输出的差异靠 Publish Profile——两者不重复,各管一层。
在发布时包含或排除内容(文本与图片)。它与 DITA 内容中的条件化属性值配合工作——内容本身不动,发布时按条件筛选。
改变已发布输出的外观,例如章节是否带编号、是否输出目录或索引。它与发布插件中定义的参数配合工作——在 XDocs 发布对话框中通常显示为「Output type」。
要点:发布配置在发布时选用,可从任意分支发布。当你想在内容和呈现上做出变体时,就创建发布配置并使用它。
分支复制不可逆的只有一点——复制过去就是新分支的 v1。所以复制前多花五分钟。