【发布时间】:2026-01-07 19:05:02
【问题描述】:
我希望能够对 XHTML 文档进行 3 路合并:
- 从文档的一些原始副本开始
- 一位用户编辑原始文档的副本
- 另一个用户编辑原始文档的单独副本
- 需要一个工具来合并(自动和/或可视化)两个用户所做的更改。
注意:
- 我想将此功能包含在商业软件中:因此我更喜欢像啤酒一样免费和/或开源的东西,而不是商业工具。
- 我怀疑如果该工具能够识别 XML,比尝试使用像
diff3这样实现平面文本的 3 路合并的软件更好 - 鉴于所有三个输入文档都是有效的 XHTML 文档,因此生成的输出文档也应该验证
我找到的工具包括:
- The "3DM" XML 3-way Merging and Differencing Tool
- Fuego Core XML Diff and Patch Tool
- XmlDiff(最近来自已关闭的 GotDotNet 站点,但它可能作为 XML Notepad 的一个组件继续存在)
上述第一个(即“3DM”)明确表示它实现了 3 路合并。
我不知道其他两个:“diff”后跟“patch”是否等效于 3 路合并,或者“patch”是否只能将 diff 重新应用于原始文件(而不是第三份,修改后的文件副本)
您能否为此目的推荐一些软件(来自上面的列表或其他地方),和/或合并算法的描述?
编辑:Matching, diffing and merging XML 是 2008 年的另一篇文章,其中包括对各种算法的简要调查以及对各种实现的引用。
编辑#2:作者确认Fuego Core XML Diff and Patch Tool只能对原文件打补丁,不实现3路合并。
【问题讨论】: