这与版本控制有关,在并行修改情况下我们不知道更改的确切时间,因此我们假设我们同时收到文件的两个修改版本。我简化了问题:
我有一个字符串S,有两个修改版本,叫做T和U.我可以看到使用diff的S和T之间的差异。让我们调用T over S做的补丁,作为PT。对于U来说,我们将拥有PU。现在,我想以一种安全的方式将PT和PU合并到一个单独的补丁中,能够在"""级别,而不是典型的编程行级别。
的问题:
1-是否有这样的算法来合并两个补丁?
2-如何检测T和U之间的冲突?
3-处理冲突的共同政策是什么?对我来说,一个解决方案是总是从其中一个版本中选择更改,例如T,以防发生冲突。
那里有什么工具可以做我想要的工作吗?
答案 0 :(得分:0)
我无法想到任何单词级冲突解决工具。你总是比较线。
您可以为您的文件类型编写自定义驱动程序。我相信这是通过git属性完成的。如果合并是非快进合并,你可以在这里做任何你喜欢的事情。
答案 1 :(得分:0)
我不知道有任何实现这样做,但是你可以通过使用检测并显示行内差异的合并工具获得很好的帮助。 KDiff3就是这样一个工具。在以下示例中,您希望合并unsigned
和int n
更改。这是通过手动编辑合并输出来完成的,但该工具使这个操作变得非常简单(以至于唯一困难的部分是理解代码更改)。