我从SVN收到此错误消息:
svn:尝试添加已存在的树冲突
现在,已经在本网站上询问过,并且给出的解释是在上一次合并之后尚未解决树冲突,现在SVN正在尝试再次添加相同的树冲突。
所以我调用了“svn status”并将所有树冲突标记为已解决。然后我做了* svn revert -R **并仔细检查“svn status”的输出是否完全为空。然后我再次尝试合并,在完全相同的地方使用完全相同的错误消息。
在我看来,svn尝试在同一个合并操作期间两次在同一个地方添加树冲突,在所有应有的尊重下,这将是SVN中的严重错误。 / p>
答案 0 :(得分:2)
似乎这个文件夹的来源是我以一种不符合SVN喜好的方式重命名的文件夹。我没有使用svn move命令,而是在本地重命名了该文件夹,使用svn remove删除了旧文件夹名称,并添加了svn add新文件夹。但是,这会产生一个具有旧名称的“幻像文件夹” - 它既不存在于工作副本中也不存在于存储库中,但SVN认为它存在。幻像文件夹导致我上面提到的致命树冲突。
以下是我们解决这个问题的方法:
将主干合并到分支中。分支现在是您最终想要的主干。
创建一个新分支作为主干的克隆。
将您的工作目录切换到最新的分支(即您最终想要作为主干的分支)。在那里使用svn diff > update.patch
。
将update.patch复制到新创建的克隆分支的文件夹中。
将工作目录切换到克隆分支的目录并应用修补程序。克隆分支现在几乎与最新分支完全相同,但有一点不同:这些隐藏的svn文件中没有提到幻像文件夹。
将克隆分支合并回主干。
答案 1 :(得分:0)
我对我的工作副本进行了更改,认为如果我没有明确地"提交" ,那么它就不会影响我在服务器上的回购。
为了抵挡一些警告(不记得),我曾多次使用"更新" 。在找到我自己挖出的这个洞之后,我明白" update" 命令的工作方式如下:
我正在使用2个分支( dev 和 alpha )。我想将 dev 分支合并到 alpha 。
注意:我使用的是SmartSVN。
答案 2 :(得分:0)
我有同样的问题。我右键单击并选择恢复。这解决了所有合并冲突问题。