Eclipse中的SVN分为两个阵营。SVN的人开发了一个名为Subclipse的插件。Eclipse开发人员有一个名为subversion的插件。广义上讲,他们做的事情是一样的。它们各自的优点和缺点是什么?


当前回答

只是更新一下。我最近正在重新安装Eclipse,面临着Subclipse和Subversive的选择。我也有自己的麻烦,试图让颠覆工作,所以我选择了Subclipse。

它完美地安装在我的Linux 64位机器上,运行得很好。我映射了最常见的功能,如更新,提交,..捷径,这是一个爆炸。合并也很好,尽管对于更大的合并,我仍然求助于TortoiseSVN。我在3.5和3.6上都试过,它们都工作得很好。由于某些原因,我最终使用了3.5,因为3.6不能使用键绑定。

其他回答

其实我觉得这两个都很烂。在我看来,使用TortoiseSVN是一个更好的解决方案。它要健壮得多,而且往往工作得更好,而且我总是在与Subclipse和subversion的集成方面遇到问题。

两者都非常相似,但是subversion是“eclipse svn提供者”。我主要使用subversion是因为它有几个方便的特性:

历史分组

当我浏览一个分支的历史记录,而不仅仅是看到每个提交的一堆行时,它可以根据今天、星期等对提交进行分组。

中继、分支和标签的映射

subversion假定默认的svn布局:trunk、分支、标签(您可以更改),因此每当您想要标记或分支时,只需单击一下,并提供标记或分支的名称。

就像我说的,这些都是我觉得方便的小区别。这两个扩展都可以很好地与mylyn一起工作,但总的来说,这两个扩展确实没有太多区别。

与subversion合并是一种痛苦(还没有尝试Subclipse),我从来没有成功合并过。合并的预览是伟大的,但它永远不会完成合并,或者它将花费很长时间。大多数时候,我通过命令行完成合并,没有任何问题。

当然,这两个IDE插件都有它们的问题。但两者都不排除并行使用其他解决方案,如TortoiseSVN或命令行。我在工作中使用这三种方法。

需要记住的重要一点是,所有客户端SVN软件都应该使用相同的SVN文件格式(不同版本的SVN不同),否则就会自找麻烦。

我们发现的另一个问题是当客户端软件使用与服务器不同的SVN文件格式时。(所谓文件格式,我指的是所有信息在所有那些看似不可见的. SVN文件中表示的方式,这些文件有效地记录了SVN需要知道的关于您的项目文件的信息。)这会造成严重破坏。在1.5服务器和1.6客户端之间有一个有记录的错误,但我现在找不到链接。

由于与我们的SVN 1.5.5服务器不兼容,我们在运行高级(IMO) Subclipse 1.6插件时遇到了问题。所以我们回到了《颠覆者》。它工作得很好,尽管速度较慢并且有些bug(但正在改进)。不过,当我们的服务器更新时,我们将切换到Subclipse。是的,我们用TortoiseSVN检查我们的项目,并将它们导入Eclipse(这样更快)。

我们发现,正如其他帖子所说,如果我们运行更新版本的TortoiseSVN,在1.6中编写文件,它将不起作用。x格式,但当我们恢复到TortoiseSVN 1.5。X,它工作得很好。命令行客户端也是如此(我们在Ant任务中利用了它)。

+ 1 Subclipse 1颠覆性的

subversion即使在进行了很小的重构之后也会感到困惑,并存在如上所述的验证问题。

环境:STS 2.7.2(基于Galileo)

FWIW,我们使用的是一个旧版本的SVN服务器(1.4左右),我似乎记得有一次Subclipse的更新打破了向后兼容性,要点是“没有人应该使用这么旧版本的SVN”。

颠覆是唯一一个似乎能够处理旧版本。但我不记得细节了,抱歉。