Neatbo.

解决三路文本合并冲突

准备祖先、本地与远端文本,逐处选择冲突处理方式,再把保存的输出交回原有工作流程。

合并三个版本

以共同祖先合并本地与远端编辑,查看冲突并保存完整选择结果。

手动准备三份角色

通过现有来源应用或审查流程,分别导出共同祖先、本地与远端副本。保留原文件,为每份选择正确角色;工作台不执行仓库或 CLI 调用。

选择文件时只显示元信息;点击运行开始整个 10 秒任务期,包含读取。原 CRLF/CR/LF 或末尾无换行重要时使用原生文件,文本框编辑可能统一换行。

恢复与保存

确认共同祖先与三份角色;超限时减少行比较工作量后重试。仍有冲突时保留“未解决”标识,直到每处冲突都有明确选择。

逐项选择冲突,明确保留未解决状态

可选未解决、本地、祖先、远端、本地后远端、远端后本地或自定义文本;空自定义替换表示明确删除。应用选择会重新计算完整输出,仅当前有效冲突 ID 可用。

输入中看似冲突标记的行仍是普通文本;生成的 LOCAL/BASE/REMOTE 标记使用 LF,无末尾换行片段所需的分隔插入会记录在完整报告中。

保存与状态一致的输出
状态文本文件核对事项
仍有未解决冲突conflicted.txt保留标记,检查每处祖先/本地/远端片段
已应用全部选择merged.txt在接收应用核对选定文本
任一已完成状态merge-report.json保留来源身份、冲突选择及 BOM 策略
  • 决定哪一方修改了片段之前,先核对共同祖先。
  • 明确选择每处冲突;需要删除时可选择空自定义替换。
  • 来源变化后检查新冲突 ID,重新填写选择。
  • 保存完整文本与报告,再在原流程手动检查或导入文本。

空源与 BOM 都是明确选择

可以。三个角色均允许空粘贴文本或真实零字节文件;三份空源产生已解决的空文本,不会启用其他隐藏输入。

每份来源移除并记录一个开头 BOM;可取祖先、本地、远端或不加,默认祖先。沿用来源时,仅在该来源原本含 BOM 时添加;完整文本复制与下载共同遵循所选策略,保留相同开头 BOM,UTF-8 字节一致。

字节、行 token、比较、自定义选择与完整输出限制见当前工具参考;预览不替代完整制品。

使用相同来源恢复

确认共同祖先与三份角色;超限时减少行比较工作量后重试。仍有冲突时保留“未解决”标识,直到每处冲突都有明确选择。 空源合法;取消后可用相同角色重跑。来源改变后,应检查新的冲突 ID 并重新选择处理方式。

来源改变会清除报告与选择,即使之后的新合并再次使用同一冲突 ID;取消或超时的任务不发布迟到结果。

参考资料

  • 三份原文与第四输出面板需求

    作者要求 mine/theirs/ancestor 与合并输出,并提到调用问题;此有界工作台支持手动导入文本版本,不修复或调用 Git 集成。

本分类工具使用说明

展开工具,查看操作步骤、可调选项和支持范围,再直接进入工作区。

合并文本文件的三个版本以共同祖先合并本地与远端编辑,查看冲突并保存完整选择结果。

以共同祖先合并本地与远端编辑,查看冲突并保存完整选择结果。

操作步骤

  1. 在独立面板打开或粘贴共同祖先、本地版本及远端版本。
  2. 点击运行,在整个任务时限内读取有效来源。
  3. 查看合并输出和每处冲突的三个版本内容。
  4. 选择处理方式或编辑自定义文本;任一源变化时清除旧选择。
  5. 全部解决后保存 merged.txt;未解决时保存 conflicted.txt,并同时保存 merge-report.json。
  6. 把审查后的保存结果手动导入原编辑器或流程,保留原文件与合并报告。

能力与限制

  • 分别提供 base、local 和 remote。每份严格 UTF-8 文本最多 1 MiB、4,000 个精确行 token。base 行数 ×(local 行数 + remote 行数)最多 4,000,000 个比较单元。
  • 固定使用 node-diff3 3.2.1 的 Hunt–McIlroy 行合并。CRLF、CR、LF 及末尾无换行均保留在行 token 中。要保留原换行请打开文件;文本框编辑可能统一换行。
  • 相同编辑只出现一次。未解决冲突保留 LOCAL/BASE/REMOTE 标记并明确显示未解决;全部解决后下载 merged.txt。报告与结果文本合计最多 8 MiB。
  • 每个冲突可选本地、祖先、远端、本地后远端、远端后本地,或最多 1 MiB 的自定义 UTF-8 文本。复制入 Worker 前的紧凑处理选项最多 8 MiB,活动选择仍受完整输出上限约束。默认未解决。输出 BOM 可取 base/local/remote 或不加;默认取 base。
  • 冲突标记使用 LF。遇到无末尾换行的片段时按需插入分隔 LF,并记录 UTF-16 位置。不进行语法语义合并,也不修改仓库。
  • 每个角色使用粘贴文本或恰好一份所选 UTF-8 文件;空文本与真实零字节文件都是合法合并来源。无效的所选文件不会回退到隐藏粘贴内容;文件名标签最多 512 个 UTF-8 字节。
  • 移除并记录一个开头 BOM,粘贴输入亦如此。拒绝无效 UTF-8、不成对的 Unicode 代理字符;输入在本浏览器处理。
  • 整个任务固定 10 秒时限或取消后不提供部分制品。修正输入后重试,每次任务使用新 Worker。
  • 文件选择仅读取元信息;整个固定 10 秒任务期从点击运行开始,包含引擎加载、输入检查、读取、导入和合并。取消或被拒绝的请求不发布部分复制或下载。
  • 冲突 ID 必须属于当前输出;不存在或未启用的 ID,以及附在其他选择上的自定义文本都会被拒绝。三个各 4,000 行角色最多产生 12,000 个 ID;任一来源改变会取消活动任务,并清除旧选择与结果。
  • 第四面板是有界输出预览;复制保留全部合并文本,merge-report.json 保留所有块、冲突、来源与选择。完整复制与下载都保留所选开头 BOM,UTF-8 字节一致,并报告精确字节数与 SHA-256。
  • 工作台接受手动导出的来源,生成供手动导入的文件;不调用 Git CLI/mergetool、不修改仓库、不验证代码语义,也不自动标记仓库冲突已解决。内容与名称仅留在当前标签页的有界内存中。
打开合并文本文件的三个版本 →