5

我从 SVN 收到此错误消息:

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

现在,这个网站上已经有人问过了,给出的解释是在之前的合并之后树冲突没有得到解决,现在 SVN 正在尝试再次添加相同的树冲突。

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

在我看来,svn 似乎在同一个合并操作期间尝试在同一个地方两次添加树冲突,恕我直言,这将是 SVN 中的一个严重错误。

4

3 回答 3

2

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

以下是我们解决此问题的方法:

  1. 将主干合并到分支中。现在,分支就是您最终希望主干成为的样子。

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

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

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

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

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

于 2010-02-25T12:01:35.320 回答
0

问题的背景

我对我的工作副本进行了更改,认为如果我没有明确地“提交”它们,它不会影响我在服务器上的存储库。

为了避免一些警告(不记得),我使用了几次“更新” 。在找到我自己挖的这个洞后,我明白“更新”命令的工作方式如下:

  1. 如果工作副本被修改/最新,它将提交到 repo。
  2. 如果回购是最新的,它会像“结帐”一样工作(据我所知)。

我正在使用 2 个分支(devalpha)。我想将dev分支合并到alpha中。

用于修复的步骤

  1. 将我的alpha更新为我有意提交的修订版,
  2. 将dev合并到alpha中。

注意:我使用的是 SmartSVN。

于 2016-04-29T13:32:53.423 回答
0

我遇到过同样的问题。我右键单击并选择还原。这解决了所有合并冲突问题。

于 2017-08-08T11:09:15.093 回答