2009-10-08 128 views
32

我和我的朋友使用flex builder(基于eclipse)和subclipse的项目。Subclipse冲突解决

在提交之前,我总是更新,但有时候由于冲突我无法提交。然后我使用Team->与存储库同步,并在右侧显示最新版本,并在左侧显示我当前的工作副本。它有一个按钮,可以从右向左复制所有非冲突(从最新的存储库到我的工作副本)。但是仍然有矛盾的线条。

有时我只是想从左到右复制,但没有按钮(我的意思是用我的线覆盖存储库文件行)。从右向左复制非冲突的部分后,我只想提交左侧(我想覆盖并提交我的最终文件到存储库)。由于这些冲突问题,我无法承诺。然后我的朋友可以使用Replace With-> Latest from Repository命令来获取最新的过分版本。

Subclipse文档很薄弱我在Internet上找不到任何好的指南。你能不能像我一样解释subclipse的冲突解决方案?显示这些步骤的视频或者快速修复它的外星技术将会很好。 eclipse的源代码控制有没有更好的(更简单的)解决方案?

(我使用的是subclipse 1.4)

+5

有时日食生态系统让我发疯。 – smartnut007 2011-08-09 00:47:11

+1

@Gok:我认为这里有个好消息:subclipse最后会让“我的/他们的/ ...解决”的工作。坏消息是,只有在点击“标记已解决”之后才会出现对话框(我已经在!!!!之前手动修复了所有冲突) – 2012-06-11 08:45:41

回答

53

是的,你是对的。没有按钮。在差异视图(并排视图)中,红色的项目有冲突。他们不能自动合并。您必须查看处于冲突状态的项目,并通过复制/编辑冲突的代码块来手动解决它。

在提交或更新存储库(与存储库同步)后,您将在控制台视图中看到有些项目存在冲突。当你在包中的文件来看看你旁边你原来的文件中看到3个文件:

myfile.txt (original file) 
myfile.txt.mine 
myfile.txt.r3293 
myfile.txt.r3501 

右键单击您的原始文件,然后选择Team - >编辑冲突。在提供的差异视图中,编辑左侧的文件以匹配所需的最终结果。 (也就是说,您可能希望保留一些更改并复制SVN修订版中的新更新,放弃所有更改并仅保留更改等)。完成后,保存该文件。再次右键单击原始文件,然后选择Team - > Mark Resovled。

您将看到添加3个文件消失。你现在可以“安全”地完成你的工作。

有没有简单的方法来做到这一点,因为SVN无法决定什么是这种冲突出现时的最佳选择。

+5

SVN在这种情况下不需要决定,OP想要明确地要求覆盖所有用他/她自己的远程更新。请参阅我的完整版:http://svnbook.spears.at/nightly/en/svn.ref.svn.c.resolve.html subclipse确实应该有这个。 – 2012-05-29 15:57:47

+0

@红杉,我为这个新手问题表示歉意,但我对这篇文章感到困惑。看起来这个特性已经被提交并且被SVN的每晚构建检查了吗?那么这是否意味着即将发布的版本(1.7.7?1.8?)它将可用?拥有解决方案/工作拷贝将会非常棒!谢谢! – AnneTheAgile 2012-07-18 11:59:03

+0

请注意,除了解决冲突之外,您还需要合并从右至左的任何非冲突更改。并且,如果您已经像上面的答案建议那样手动编辑,点击“Team-> Mark Resolved”后,选择“文件解决冲突”。 – Madbreaks 2013-04-26 18:18:59

11

我知道这个主题很旧,但如果有人正在寻找更新的答案,我的经验可以提供帮助。
我使用的是subclipse 1.8。右键单击原始文件并选择“标记已解决...”,您将拥有多个选项,其中包括将本地文件或基本文件作为正确版本。您可以使用这些选项节省时间。

4

我找不到“Mark Resolved”,所以我在手动删除生成的文件后点击了“Mark as Merged”标记。

+0

这似乎是做同样的事情。 – otajor 2016-06-14 13:27:15

0

请执行下列操作步骤:

  • 复制您最新的工作更新到安全的地方。

  • 选择有冲突的文件..点击>选择替换为>>从存储库中选择最新。

  • 然后返回到您保存的工作副本,并用您的手动替换当前文件内容(在上述步骤中已被覆盖)。

  • 然后从团队选择提交... 这种方式冲突应该解决,你保存你最新的更新SVN仓库。