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


当前回答

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

历史分组

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

中继、分支和标签的映射

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

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

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

其他回答

两者我都用过。我有一个问题,我的工作空间里有大约150个项目,当我选择所有的插件并选择“同步存储库”时,subversion会花很长时间。UI会冻结很长一段时间。我发现Subclipse更稳定。

总之,我经常结合使用这些工具。对于一些任务,比如检查整个分支,我更喜欢命令行。对于其他人,我使用TortoiseSVN。我使用Subclipse主要是为了查看历史记录并直接在工具上运行比较,偶尔也会进行比较(不过我更喜欢Beyond compare)。

如果您使用svn+ssh作为访问存储库的协议,我强烈建议您选择Subclipse: subversion不够智能,不能正确地记住您的凭据,并且每次更新工作副本时都会提示您输入用户名和私钥,对于您可能已经设置的每个svn-external也是如此。

在这种情况下,“记住凭据”选项被打破了,并且自subversion的第一个公开发布以来一直如此。

我刚刚发现,我不知道如何使用Subclipse查看属性差异。在subversion中,您可以在历史视图中选择两个修订,右键单击并从弹出的窗口中选择比较属性。这足以让我坚持做颠覆者。

尝试切换的原因是subversion在OS X上的奇怪行为:一些称为“svn缓存更新”的自动操作在每次“svn更新”运行后占用CPU的异常水平,总是要花很长时间才能完成。

我升级到Ganymede后就一直在用subversion。我在Linux (Ubuntu和Fedora Core)、Windows XP和Mac OS X.5中的Eclipse中使用它。除了让Subversion 1.5.1在Mac OS下使用正确的安全库有一些问题外,我没有遇到任何问题。鉴于它已经被采纳为一个Eclipse技术项目,我倾向于把赌注押在它身上,就长期希望而言。

如果你正在使用Zend Studio 9 (Zend的Eclipse实现),我建议使用Subclipse而不是Zend Studio自带的subversion作为默认值。

我已经在Zend论坛上发布了一个关于subversion和Zend Studio 9的问题以及我使用Subclipse的解决方案。