共同祖先如何改变合并判断
借助共同祖先区分互不冲突修改与重叠编辑,再保存完整且明确处理的文本。
共同祖先如何改变合并判断
两份文本能展示差异,却不能说明哪个分支相对共同祖先修改了某行。来源用户明确要求 mine、theirs、ancestor 加第四个输出面板。保留祖先后,互不冲突的编辑可同时合并,相同编辑只出现一次;重叠编辑仍需要可见选择。
检验完整流程
确认共同祖先与三份角色;超限时减少行比较工作量后重试。仍有冲突时保留“未解决”标识,直到每处冲突都有明确选择。
两份文本差异无法识别双方编辑
若本地把共同祖先的 b 改为 L,远端把 d 改为 R,三路合并可以保留两处编辑。两路展示只说明本地和远端不同,无法确定共同起点;完整示例展示这两处互不冲突修改。
| 修改情况 | 合并结果 |
|---|---|
| 不同且不重叠的区域 | 可同时保留两处编辑 |
| 双方做出相同修改 | 相同编辑不会重复出现 |
| 修改区域重叠 | 冲突需要明确选择 |
a
L
c
R
e
选择文本,不预设语义正确
本地后远端、远端后本地按指定顺序连接精确冲突片段;不会合成代码、合并对象属性或验证接收格式。合并已解决只表示所有冲突选择已应用,不表示程序或配置正确。
空输入、空自定义替换和末尾无换行具有不同含义;交付保存文本时,保留三份来源身份、所选 BOM 策略及完整报告。
使用手动文件交付
来源作者也提到桌面合并工具调用问题。此工作台不修复调用或配置 Git mergetool;从现有流程导出三个版本,在这里导入,再将保存的合并文本手动检查/导入原流程。
- 把祖先、本地与远端版本导出为独立副本。
- 确认角色,再检查三份原文及第四输出面板。
- 处理每处重叠片段,未解决输出保留冲突标识。
- 保存完整文本与报告,手动检查或导入;Git 调用不属于此流程。
参考资料
- 三份原文与第四输出面板需求
作者要求 mine/theirs/ancestor 与合并输出,并提到调用问题;此有界工作台支持手动导入文本版本,不修复或调用 Git 集成。
本分类工具使用说明
展开工具,查看操作步骤、可调选项和支持范围,再直接进入工作区。
合并文本文件的三个版本以共同祖先合并本地与远端编辑,查看冲突并保存完整选择结果。
以共同祖先合并本地与远端编辑,查看冲突并保存完整选择结果。
操作步骤
- 在独立面板打开或粘贴共同祖先、本地版本及远端版本。
- 点击运行,在整个任务时限内读取有效来源。
- 查看合并输出和每处冲突的三个版本内容。
- 选择处理方式或编辑自定义文本;任一源变化时清除旧选择。
- 全部解决后保存 merged.txt;未解决时保存 conflicted.txt,并同时保存 merge-report.json。
- 把审查后的保存结果手动导入原编辑器或流程,保留原文件与合并报告。
能力与限制
- 分别提供 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、不修改仓库、不验证代码语义,也不自动标记仓库冲突已解决。内容与名称仅留在当前标签页的有界内存中。