I3.11.4conflict provenance设计

冲突合并界面需要清楚呈现差异来源而不只是最终合并结果

别名: 差异来源 · 谁改的 · merge provenance · 不只看结果

概念解释

合并界面若只抛出一份「建议结果」,人无法判断该不该接受。差异来源(provenance)要能看见:哪一段来自哪一侧、何时、在哪台设备或哪个身份下写下。结果可以在、甚至可以预填,但它不能是唯一可见物。没有来源的结果是一份匿名拼贴,接受它等于在没对照的情况下签字。

这条是展示义务。字段能不能自动并、文本该不该自动并,决定的是哪些格子进入这张界面;一旦进入,就要把来源说清。

机制

人解决冲突靠的是归因:「这句是我上周在飞机上写的,那句是同事今天改的」。归因需要三元组:谁、何时、哪一侧的原文。只给结果,工作记忆里没有对照物,决策退化成「看起来通顺就接受」——通顺便成了唯一标准,而通顺的假合成恰恰最像可接受。来源把对照外化:左右或上下并排,加上身份与时间,比较从回忆变成感知。

来源还有审计作用。事后「为什么最终版是这样」必须能回答到某一侧的某一版本,而不是「算法当时的输出」。界面如果把中间产物当成唯一文档,审计链在人眼里从这里断掉。即使底层日志还在,人找不到入口,等于没有来源。

边界

自动合并且双方补丁都进入结果、又无语义风险的字段,可以只在历史上保留来源,不必每次打开都并排——但历史必须达得到。匿名协作、笔名、或隐私要求隐藏身份时,「谁」可以降级为「左侧 / 本机 / 另一台」,时间仍应在。来源展示本身会泄露另一侧在离线期间的劳动,这有时是功能(看见同事写了),有时是风险(不该看见的草稿);权限要切在来源层,不要靠不画来源来保密。极大 diff(整章对整章)并排会打爆小屏,来源可以先按章节索引,再进入段落对照,但不能因此只留一版结果。

怎么落地

  • 冲突界面默认同时展示两侧原文,并标注身份与相对时间;建议结果若存在,放在对照之后,而不是替代对照。
  • 每一块差异可追溯到一侧的一个版本,点开能看见该版本的上下文,不只是一行红字。
  • 接受结果之后,来源进入该次合并的历史,而不是从对象上抹掉。
  • 验证:一次标题冲突,界面若只有一个预填标题、没有「这是手机上的 / 这是电脑上的」,来源失败。加上身份与时间后再请一个不在场的人选择——他们应能说出自己在选谁的字。再在接受后打开历史,两侧原文应仍在。把同一场景做成只高亮最终句的 diff、不标侧别,同样不合格。

延伸

  • 同组I3.11.1 结构化数据的字段级合并能减少需要人工介入的冲突范围 · I3.11.2 自由文本等非结构化内容通常无法被系统自动合并 · I3.11.3 合并粒度越细,自动合并成功率越高但实现与展示复杂度也越高
  • 相邻I3.04 同步冲突 · I3.01 系统状态可见
  • 站内检索merge provenance · diff source · who wrote this

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/I3.11.4