我和我的朋友使用flex builder(基于eclipse)和subclipse进行项目。
在提交之前我总是更新,但有时我因为冲突而无法提交。然后我使用Team-> Synchronize with Repository,它在右侧显示最新的存储库,在左侧显示我当前的工作副本。它有一个按钮可以从右到左(从最新的存储库到我的工作副本)从所有非冲突中复制。但仍有相互矛盾的界限。
有时我只想从左到右复制,但没有按钮(我的意思是用我的行覆盖存储库文件行)。从右到左复制非冲突部分后,我只想提交左侧(我想覆盖并将我的最终文件提交到存储库)。由于这些冲突问题我无法承诺。然后我的朋友可以使用Replace With->最新的Repository命令获取最新的覆盖版本。
Subclipse文档很薄我在互联网上找不到任何好的指南。你可以像我一样逐步解释subclipse冲突解决吗?显示步骤的视频或快速修复它的外来技术将很好。是否有更好的(更简单的)eclipse源代码控制解决方案?
(我使用subclipse 1.4)
答案 0 :(得分:53)
是的,你是对的。没有按钮。在Diff视图(并排视图)中,红色项目存在冲突。它们无法自动合并。您必须检查冲突中的项目,并通过复制/编辑冲突的代码块手动解决它。
从存储库(与存储库同步)提交或更新后,您将在控制台视图中看到某些项目存在冲突。当您在Package中查看该文件时,您将看到原始文件旁边的3个文件:
myfile.txt (original file)
myfile.txt.mine
myfile.txt.r3293
myfile.txt.r3501
右键单击原始文件,然后选择团队 - >编辑冲突。在提供的Diff View中,编辑左侧的文件以匹配您想要的最终结果。 (即您可能希望保留一些更改并从SVN中的修订版本复制新更新,放弃所有更改并仅保留更改等)完成后,保存文件。再次右键单击原始文件,然后选择Team - > Mark Resovled。
您将看到添加3个文件消失。您现在可以“安全地”提交您的工作。
没有简单的方法可以做到这一点,因为当出现这种冲突时,SVN无法决定什么是最佳选择。
答案 1 :(得分:11)
我知道这个帖子已经过时了,但如果有人正在寻找更新的答案,我的经验可以提供帮助 我正在使用subclipse 1.8。右键单击原始文件并选择“Mark Resolved ...”,您将有多个选项,其中包括将本地文件或基本文件作为正确的版本。您可以使用这些选项节省时间。
答案 2 :(得分:4)
我找不到“Mark Resolved”,所以我在手动删除生成的文件后点击“Mark as Merged”。
答案 3 :(得分:0)
执行以下步骤:
将您最新的工作更新复制到安全的地方。
选择有冲突的文件。右键单击>选择替换为>>从存储库中选择最新。
然后返回已保存的工作副本,并手动替换当前文件内容(已在上述步骤中覆盖)。
然后从团队中选择提交... 这样就可以解决冲突并将最新更新保存到SVN存储库。