SVN:"树冲突已经存在",但在我尝试合并之前没有

ahe*_*eld 5 svn merge tree-conflict

我从SVN收到此错误消息:

svn:尝试添加已存在的树冲突

现在,已经在此站点上询问过这个问题,并且给出的解释是在上一次合并之后尚未解决树冲突,现在SVN正在尝试再次添加相同的树冲突.

所以我调用了"svn status"并将所有树冲突标记为已解决.然后我做了*svn revert -R**并仔细检查"svn status"的输出是否完全为空.然后我再次尝试合并,在完全相同的地方使用完全相同的错误消息.

在我看来,像svn尝试在同一个合并操作期间在同一个地方添加两次树冲突,在所有应有的尊重下,这将是SVN中的严重错误.

ahe*_*eld 2

看起来这个来源是一个我以不符合 SVN 喜好的方式重命名的文件夹。我没有使用 svn move 命令,而是在本地重命名了该文件夹,使用 svn remove 删除了旧文件夹名称,并使用 svn add 添加了新文件夹名称。然而,这会产生一个具有旧名称的“幻影文件夹”——它既不存在于工作副本也不存在于存储库中,但 SVN 认为它存在。虚拟文件夹会导致我上面提到的致命树冲突。

我们是这样解决这个问题的:

  1. 将主干合并到分支中。现在,分支就是您最终想要的主干。

  2. 创建一个新分支作为主干的克隆。

  3. 将您的工作目录切换到最新的分支(即您最终想要作为主干的分支)。在那里使用svn diff > update.patch

  4. 将 update.patch 复制到新创建的克隆分支的文件夹中。

  5. 将工作目录切换到克隆分支的工作目录并应用补丁。克隆分支现在几乎与最新分支相同,但有一个区别:这些隐藏的 svn 文件中没有提及幻影文件夹。

  6. 将克隆分支合并回主干。