1

背景:

我们使用最新的 IntelliJ IDEA 2019.3.3(终极版)和 SVN 作为存储库。

问题:

如果两个人在他们的本地结帐中创建一个具有自己内容的新目录并想要提交这些文件,那么第二个提交者就会发生冲突。到目前为止这很好。结果如下:Intellij 仅提供“接受你的”或“接受他们的”选项,但不提供合并选项。

示例

为什么?

如果我们接受“他们的”版本,我们将用他们的版本“替换”(稍后在“受影响的文件概述”中宣布)我们的整个目录并自动删除我们的内容,如果我们使用“你的”版本,我们将完全接受我们的版本,但删除“他们的”提交的所有内容文件。在这种情况下,我们需要的是合并到一个目录并接受两个内容的选项。

有没有其他方法可以解决这个问题并接受两个目录内容?

例如:

用户 1 提交包含以下内容的新目录:

sameDirectory
|- UserOneFileOne.java

用户 2 提交具有相同名称但具有自己的内容但有冲突的新目录:

sameDirectory
|- UserTwoFileOne.java

结果接受“他们的”版本:

sameDirectory
|- UserOneFileOne.java

结果接受“你的”版本:

sameDirectory
|- UserTwoFileOne.java

期望的结果:

sameDirectory
|- UserOneFileOne.java
|- UserTwoFileOne.java
4

1 回答 1

1

IntelliJ 依赖于命令行 svn 客户端,而 svn 不支持这种合并。这是一个树冲突,要解决它,必须接受一个树枝或另一个

如果您同意这一举动,那么您的 bar.c 就是多余的。您需要删除它并将树冲突标记为已解决。但是等等:您对该文件进行了更改!在删除 bar.c 之前,您需要确定您对其所做的更改是否需要应用到其他地方,例如应用到 bar.c 的所有代码现在所在的新 baz.c 文件。让我们假设您的更改确实需要“跟随移动”。Subversion 不够聪明,无法为您完成这项工作[10],因此您需要手动迁移更改。

http://svnbook.red-bean.com/en/1.8/svn.tour.treeconflicts.html

于 2020-03-23T17:42:08.980 回答