【发布时间】:2014-06-17 12:26:07
【问题描述】:
合并选项 theirs-full 导致有时“我的”更改与“他们的”不冲突会被丢弃,有时不会。这很令人困惑。
另一方面,合并选项 theirs-conflict 很明确:它会导致始终保留与“他们的”不冲突的“我的”更改。如果发生冲突,将采取“他们的”。
我不明白如何安全地使用 theirs-full。合乎逻辑且安全的方式是他们的冲突。
问题是无论文件之间是否存在冲突,将 theirs-full 的逻辑更改为始终采用“他们的”内容是否有意义?只要文件之间存在差异 - 就拿“他们的”。
这将使 theirs-full 更加有用,并使其符合此选项的名称所暗示的内容。
这里有一点解释:
如果两个文件版本,一个来自主干,另一个来自分支,有冲突的差异,那么 svn merge with theirs-full 选项将采用“他们的”文件的完整版本。无论哪个版本更新,合并将始终采用“他们的”,而“我的”更改,无论是否冲突,都将被丢弃!
如果两个文件版本没有冲突的差异,则 svn merge with theirs-full 选项会将更改从“他们的”合并到“我的”文件中。我会得到“他们的”和“我的”的组合。
这会导致意外的合并结果 - 碰巧有冲突的文件将等于“他们的”版本,即使是非冲突的“我的”更改也会丢失。恰好没有冲突的文件将具有“他们的”和“我的”的组合内容。
因此,对于所有不同的文件,让 theirs-full 始终采用“他们的”。
【问题讨论】:
-
这是陈述,不是问题。你有问题吗?
-
好的,我让我的问题更明显了......所以无论文件之间是否存在冲突,将 theirs-full 的逻辑更改为始终采用“他们的”内容是否有意义?只要文件之间存在差异 - 使用“他们的”。
-
所以你想要一些用源分支覆盖目标分支的东西。那么,这并不是真正的合并。更像是一个副本,但不会丢失目标分支的历史记录。
标签: svn version-control merge