合并与冲突处理

合并与冲突处理

M-Doc 支持跨版本的文章合并,允许将一个版本中的文章更新合并到另一个版本。


合并概念

当你 Fork 了一个版本(如从 v1.0.0 创建 v2.0.0),两个版本中的文章可以独立编辑。合并操作可以将源版本中的文章更新同步到目标版本。

v1.0.0(修复了文章 A)
   │
   └──merge──> v2.0.0(文章 A 获得修复)

合并文章

  1. 进入目标版本
  2. 选择要合并的文章
  3. 点击「合并」
  4. 选择源版本
  5. 确认合并

合并规则

合并操作基于文章的 stable_key(UUID)匹配同一篇文章在不同版本中的状态,然后将源版本的最新内容应用到目标版本。

冲突检测

当源版本和目标版本都修改了同一篇文章时,系统会检测到合并冲突

检查冲突

在合并之前,可以先检查是否存在冲突:

GET /api/versions/:id/articles/:articleId/merge-conflict

系统会返回冲突信息,包括双方修改的内容。

处理冲突

强制合并

如果确定要用源版本的内容覆盖目标版本:

  1. 查看冲突详情
  2. 点击「强制合并」
  3. 确认覆盖

强制合并会用源版本的内容完全替换目标版本的内容。

手动解决

对于复杂冲突,建议:

  1. 分别查看两个版本的文章内容
  2. 在目标版本中手动编辑,整合双方的修改
  3. 发布更新后的内容

最佳实践

  1. 频繁合并:避免长时间不合并导致大量冲突
  2. 先检查再合并:合并前先检查冲突
  3. 单向合并:建议从修复分支向主分支合并,而不是双向合并
  4. 合并后验证:合并完成后检查内容是否正确