SVN树冲突在eclipse中完全破坏了我的代码

时间:2010-11-16 15:09:54

标签: eclipse svn subclipse

我使用Subclipse(SVN客户端)在Eclipse中工作,我已经在我的项目上工作了一段时间,在此过程中我更改了一个java包名。当我尝试SVN提交它告诉我,我有一个树冲突。我打开了冲突,并且确定与新包名称存在冲突,我将选择作为默认值,其中说了一些关于合并的内容并按下确定。

现在我所有的代码都有这样的东西

<<<<<<< .working
        getProviders();

=======
>>>>>>> .merge-right.r44

这次显示多次,我到处都有编译错误。我无法恢复该项目,因为我已在本地进行了如此多的更改。

此外,现在我将所有这些新文件命名为Constants.java.merge-right.r43,其中'Constants.java'是真实文件,'Constants.java.merge-right.r43'是一些新文件

如何撤消此树冲突问题?

3 个答案:

答案 0 :(得分:2)

找到

指示的所有合并冲突
<<<<<<< .working
  <your code>
=======
  <their code>
>>>>>>> .merge-right

部件并检查哪些代码是正确的代码(或两部分的组合)。保留/修改该代码并删除冲突指标<=>行。

正如您所注意到的,有几个版本的文件存在冲突:

  • 这些文件的.mine版本是您拥有的版本
  • .merge-right.r43是新服务器版本
  • .merge-right.rXX(其中XX&lt; 43)是您用来创建自己版本的旧服务器版本。

修复工作版本后,需要使用svn resolved <filename>告诉SVN您解决了合并冲突。解决所有冲突后,您可以再次提交代码。

有关详细信息,请参阅:How to resolve Subversion Conflicts

答案 1 :(得分:0)

您必须使用您对代码的深入了解来确定每个<<< === >>>项目应该代替的位置。它可能是顶部,它可能是底部,它可能是两者的某种组合,或者它可能是完全不同的东西。只有你知道。对于每个这样的<<< === >>>项......

最终结果不得包含这些项目。手动编辑代码后,将文件标记为已解决。解决所有文件后,您可以自由提交更改。

答案 2 :(得分:-1)

首先,你应该考虑下次使用锁: - )

其次,您可以右键单击该文件并说出Team,Mark已解决 然后删除添加的文件,但您必须手动编辑.java文件。 或者您使用像WinMerge这样的合并工具。