【问题标题】:Three Way Merge Algorithms for Text文本的三向合并算法
【发布时间】:2009-07-29 23:54:06
【问题描述】:

所以我一直在开发一个 wiki 类型的网站。我要决定的是合并两个用户同时编辑的文章的最佳算法。

到目前为止,如果两个不相关的区域被编辑,我正在考虑使用 Wikipedia 合并文档的方法,但如果两个提交发生冲突,则丢弃旧的更改。

我的问题如下:如果我有原始文章,并对其进行了两次更改,那么将它们合并然后在出现冲突时处理它们的最佳算法是什么?

【问题讨论】:

    标签: algorithm merge diff revision


    【解决方案1】:

    Bill Ritcher 的优秀论文“A Trustworthy 3-Way Merge”讨论了商业 SCM 软件包使用的三路合并和巧妙解决方案的一些常见问题。

    三向合并将自动应用每个版本的所有更改(不重叠)。诀窍是自动处理尽可能多的几乎重叠的区域。

    【讨论】:

    • 我更改了网址,因为您给的网址现在是 404。我希望它仍然指的是同一篇文章。
    • 是的,就是这样。感谢更新!
    【解决方案2】:

    本文对 diff3 算法进行了形式化分析,带有伪代码: http://www.cis.upenn.edu/~bcpierce/papers/diff3-short.pdf

    标题为“A Formal Investigation of Diff3”,由雅虎的 Sanjeev Khanna、Keshav Kunal 和 Benjamin C. Pierce 撰写。

    【讨论】:

      【解决方案3】:

      坦率地说,我会依赖 diff3。它几乎存在于每个 Unix 发行版上,您始终可以为 Windows 构建和捆绑一个 .EXE,以确保它可以满足您的目的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-10
        • 2010-09-12
        • 1970-01-01
        • 2018-07-05
        • 1970-01-01
        • 1970-01-01
        • 2018-02-06
        相关资源
        最近更新 更多