0

这与版本控制有关,在我们不知道更改的确切时间的并行修改情况下,因此我们假设我们同时收到一个文件的两个修改版本。我简化了问题:

我有一个字符串 S,有两个修改版本,称为 T 和 U。我可以使用 diff 看到 S 和 T 之间的差异。让我们将由 T over S 组成的补丁称为 PT。U也一样,我们会有PU。现在,我想以一种安全的方式将 PT 和 PU 合并到一个补丁中,能够在“字”级别而不是典型的编程线级别检测 PT 和 PU 之间的冲突。

问题:

1-有没有这样的算法来合并两个补丁?

2- 如何检测 T 和 U 之间的冲突?

3- 处理冲突的共同政策是什么?对我来说,一种解决方案是始终从其中一个版本中选择更改,比如 T,以防发生冲突。

有什么工具可以做我正在寻找的东西吗?

4

2 回答 2

0

我不知道有什么实现可以做到这一点,但是您可以通过使用检测并显示行内差异的合并工具获得很好的帮助。KDiff3就是这样一个工具。在以下示例中,您希望合并unsignedint n更改。这是通过手动编辑合并输出来完成的,但该工具使此操作非常简单(以至于唯一困难的部分是理解代码更改)。

KDiff3 截图

于 2012-05-23T10:54:52.140 回答
0

没有我能想到的字级冲突解决工具。你总是比较线条。

您可以为您的文件类型编写自定义驱动程序。我相信这是通过 git 属性完成的。如果合并是非快进合并,您可以在这里做任何您喜欢的事情。

于 2012-05-22T21:30:46.903 回答