Eclipse,Subclipse和Subversive的SVN插件的优缺点是什么?

时间:2008-09-14 13:14:58

标签: svn eclipse subclipse subversive

Eclipse中的SVN分散到两个阵营。 SVN人员开发了一个名为Subclipse的插件。 Eclipse人员有一个名为Subversive的插件。从广义上讲,他们都做同样的事情。每种方法的优点和缺点是什么?

32 个答案:

答案 0 :(得分:175)

两者非常相似,但Subversive是“eclipse svn提供者”。我主要使用Subversive,因为有一些方便的功能:

分组历史

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

树干,分支和标签的映射

Subversive采用默认的svn布局:trunk,branches,tags(你可以更改),所以每当你想要标记或分支时,只需点击一下即可提供标签或分支的名称。

就像我说的那些是我觉得方便的细微差别。两者都适用于mylyn,但总体而言,这两个扩展并没有太多差异。

与Subversive合并虽然很痛苦(没试过Subclipse),但我从来没能成功合并。合并的预览很好,但它永远不会完成合并,或者它将采取长期。大多数时候,我通过命令行完成合并而没有任何问题。

答案 1 :(得分:161)

我会采取行动解决这个问题。我是Subclipse的项目主管,我管理项目的所有版本等。所以我的偏见很明显。

我不会谈论Subversive太多。显然,有些用户使用它并喜欢它。在功能上,产品非常相似,因为两者都是成熟产品。

我想要评论的一件事就是这个概念,以某种方式Subversive是“官方Eclipse”插件。这是不正确的,因为没有这样的指定。 Eclipse是一个开源基础,任何想要遵循其规则,流程和IP要求等的项目都可以在基础上托管他们的项目。这并不会使你比任何其他插件更多或更少官方。

我还要注意到Subversive自成立以来一直处于“孵化”阶段,在我看来它不会满足毕业要求。正如您在此处所看到的,项目中只有一个提交者,提交活动已经减少到非常低的水平。

Subversive - SVN Team Provider

那你为什么要使用Subclipse?我们积极参与Subversion本身。我是Subversion PMC成员并帮助维护Java语言绑定,以便我们(以及像Subversive这样的其他项目)可以使用API​​。

我们直接使用Subversion来定义和改进API,并确保将必要的功能暴露给像Subclipse这样的客户端。我们还与Visual Studio集成(AnkhSVN)和TortoiseSVN团队密切合作,确保客户体验相对一致。

仍然积极维护Subclipse,我们维护对Eclipse版本3.2到4.2的支持。我们一直在努力倾听反馈并融入社区的想法。最近的1.8.x版本包括内部更改,这些更改可以在处理大型项目时(即您真正看到它时)大大提高Eclipse的性能。

Subclipse在合并跟踪支持等领域处于领先地位,我们与Subversion团队密切合作,首先在1.5中添加此功能,然后在后续版本中进行演变。我们经常是新API的最初消费者,并为项目提供了强化功能所需的反馈。几年前,我们还引入了图形修订图功能,成为第一个为Eclipse用户提供长期要求的功能。

如果Subversive中有特定的UI功能,人们希望在Subclipse中看到,我鼓励您访问我们的社区并参与我们的论坛。也许其他用户可以分享您的观点,我们可以一起改进用户界面。

论坛 [Subclipse-users]

Eclipse 4.2是本文发布时的最新版本,但可以安全地假设Subclipse将支持所有未来的Eclipse版本。

答案 2 :(得分:117)

对于每个新版本的Eclipse,我都安装Subversive,因为它是Eclipse提供的标准。而且每次都有识别我已有的项目的问题。

所以我最终卸载Subversive并安装Subclipse,这非常有效。我也经常在命令行和Eclipse中使用SVN,而Subclipse对此没有任何问题。

答案 3 :(得分:51)

阅读完这篇文章后,我改为Subclipse http://eclipsezone.com/eclipse/forums/t77149.rhtml#92035407

答案 4 :(得分:34)

如果您与Subversion合并很多,那么您可能更喜欢CollabNet Desktop - Eclipse Edition。您必须在CollabNet上注册一个帐户才能下载,但它是免费的。它本质上是Subclipse,具有更好的合并UI。

我不隶属于CollabNet。

CollabNet已将其改进的合并客户端提供给Subclipse的非注册用户。您可以通过从更新站点安装Subclipse时选择CollabNet Merge Client功能来获取它。

答案 5 :(得分:24)

我会说Subclipse,因为我甚至无法让Subversive工作;)

答案 6 :(得分:18)

我实际上认为他们两个都很糟糕。在我看来,使用TortoiseSVN是一个更好的解决方案。它更强大,往往更好地工作,我总是遇到与Subclipse和Subversive的集成问题。

答案 7 :(得分:15)

他们都有非常令人发指的疣,但我无法让Subversive使用我从命令行检查过的项目,这对我来说是一个显示器。

答案 8 :(得分:14)

tried both of them,Subclipse和Subversive都很糟糕。两者都很难安装。如果您使用Subversive,则无法使用外部SVN客户端

但是,您需要在Eclipse中安装SVN客户端以跟踪更改,并且不会损坏您的本地存储库。

我安装了Subclipse,但使用TortoiseSVN实际进行了评分/标记/分支/合并。

答案 9 :(得分:12)

Subclipse,因为至少它有效。

到目前为止,颠覆对我来说是一个失败的障碍。对于我用Subclipse检查过的所有旧项目,它都不会很好。

答案 10 :(得分:8)

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

要记住的重要一点是,所有客户端SVN软件使用相同的SVN文件格式 - 这在SVN版本之间有所不同 - 或者您要求麻烦。

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

由于与SVN 1.5.5服务器不兼容,我们遇到运行高级(IMO)Subclipse 1.6插件的问题。所以我们又回到了Subversive。它工作正常,尽管速度慢但有些错误(但有所改进)。不过,当我们的服务器更新时,我们将切换到Subclipse。是的,我们使用TortoiseSVN检查我们的项目并将它们导入Eclipse(它更快)。

我们发现,正如其他海报所说,如果我们运行较新版本的TortoiseSVN以1.6.x格式编写文件,它将无法工作,但当我们恢复到TortoiseSVN 1.5.x时,它工作得很好。命令行客户端(我们利用Ant任务)也是如此。

答案 11 :(得分:6)

如果您在公司中使用其中一个,甚至可能希望将它们捆绑在自己的基于Eclipse的产品中,那么使用Subclipse可以让您的生活更轻松,因为它可以在商业友好的Eclipse Public License下使用。

另一方面,颠覆性需要所谓的连接器才能完全发挥作用。那些有不同的许可证。因此,您可能最终只为Subversive功能提供两个或三个不同的许可证,而所有其他 Eclipse插件仅在该EPL之下。这也是为什么这些连接器不在eclipse.org托管的原因。

这就是为什么在Subversive安装后动态下载它们(这也意味着只是镜像eclipse.org更新站点并不能在公司网络中为您提供可用的Subversive离线安装)。

答案 12 :(得分:6)

我选择使用Subclipse,因为它与Subversion项目关系最密切,因此更有可能更好地处理核心SVN功能。如果它根本无法执行任何功能,那么我将TortoiseSVN作为备份。

答案 13 :(得分:6)

如果您使用 svn + ssh 作为访问存储库的协议,我强烈建议您选择Subclipse:Subversive不够智能,无法正确记住您的凭据并提示您输入用户名和私钥每次更新您的工作副本以及您可能已设置的每个svn-external。

“记住凭据”选项在此上下文中被打破,并且自Subversive首次公开发布以来一直存在。

答案 14 :(得分:6)

只是一个更新。我最近重新安装了Eclipse,面临着Subclipse vs Subversive的选择。我也有一些麻烦试图让Subversive工作,所以我去了Subclipse。

它完全安装在我的Linux 64位机器上,运行得很好。我将最常见的函数,如Update,Commit,..映射到快捷方式,这是一个爆炸。合并也很好,虽然对于更大的合并,我仍然转向TortoiseSVN。我尝试使用3.5和3.6,它们都工作正常。我最终使用3.5因为某些原因键绑定不适用于3.6。

答案 15 :(得分:5)

直到2008年5月左右我才使用Subclipse,但是由于某些项目的问题,我已经切换到Subversive并且使用它没有任何问题。如果你正在做一些像无头Buckminster构建这样的花哨的东西,那么Subversive绝对是你的选择。

答案 16 :(得分:5)

如果您使用TortoiseSVN并定期更新版本,您可能会发现带有Subversive的Eclipse会丢失所有SVN信息并引发一些可怕的错误。

原因是TortoiseSVN的新版本添加了Eclipse Subversive无法理解的新元数据,除非您同时保持Eclipse SVN连接器的最新状态。

我通常使用SVNKit连接器,因此TortoiseSVN 1.5.x将与Eclipse SVNKit连接器1.5.x一起使用,TortoiseSVN 1.6.x将与Eclipse SVNKit连接器1.6.x一起使用。

答案 17 :(得分:4)

Subversive比下面列出的Subclipse更具优势。但只有Subversion没有的一个功能对于使用分支是如此关键。所以我们必须使用 Subclipse

颠覆性优势:

  • 视图和图标提供更多信息
  • 刷新提交同步项后,将关闭已提交的文件。

Subclipse 优势

  • 比较两个分支的能力

答案 18 :(得分:4)

+1 Subclipse
-1颠覆

即使是轻微的重构,Subversive也会感到困惑,并且如上所述存在验证问题。

环境:STS 2.7.2(基于伽利略)

答案 19 :(得分:3)

作为Brendons的补充回答:

我们从版本1.5.1开始使用Subversion并首先使用Subclipse。但是因为我们非常依赖于合并功能,所以我们切换到Subversive,它更方便,并且在合并对话框中有一个单独的Reintegrate选项。

可能阻碍合并的一个错误是,如果您明确选择修订版,则不会列出最后一个修订版。例如。 “101-100”不合并r100和“100”因此根本不合并任何东西。 (版本0.7.5)

它使用与CVS插件相同的指标。

答案 20 :(得分:3)

虽然我同时使用Helios,但我对Subclipse略有偏好,因为它对bugtraq属性(details here)提供了出色的支持。

历史记录视图显示一个单独的列(标题为bugtraq:label,显示BUGID s),上下文菜单有一个专门的操作“打开错误的URL”(链接)到bugtraq:url) - 我无法弄清楚如何使用Subversive访问任何此类信息。

答案 21 :(得分:3)

对我而言,无论是好还是坏,但Subversive是Eclipse Ganymede平台中的默认SVN插件,因此有可能更好地与Eclipse集成。

答案 22 :(得分:2)

我刚刚发现我无法弄清楚如何使用Subclipse查看属性diff。在Subversive中,您在历史记录视图中选择两个修订,右键单击并从弹出窗口中选择比较属性。这足以让我坚持Subversive。

尝试切换的原因是Subversive在OS X上的奇怪行为:一些名为'svn cache update'的自动操作在每次'svn update'运行后都将CPU处于异常水平,总是需要花费很长时间才能完成。< / p>

答案 23 :(得分:2)

我还没有真正使用它,但似乎Subversive支持“Check Out As”,就像内置的CVS支持一样。

比如,要从SVN获取项目并能够将其作为Web项目运行,可以一次性完成。但是要在Subclipse中获得相同的结果,我只需查看源代码并运行:

mvn eclipse:eclipse -Dwtpversion=2.0

答案 24 :(得分:2)

FWIW,我们正在使用一个古老版本的SVN服务器(1.4个东西),我似乎记得曾经有一个更新Subclipse破坏了向后兼容性,并且要点是“没有人应该这样做无论如何,旧版SVN“。

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

答案 25 :(得分:2)

我已经使用了两者,虽然Subclipse对我来说很脆弱,Subversive(至少在之前的版本中)锁定了我的同事帐户,当他意外地输入了错误的凭据(网络登录用于访问subversion存储库)。

随着时间的推移,Subclipse往往会变得杂乱无章。如果Eclipse没有定期刷新,Subclipse似乎丢失了它的文件跟踪信息。老实说,既然我有Easy Explorer Plugin,我会使用Subversive(偶尔)进行历史记录和更改信息,但我很容易探索并使用TortoiseSVN来提交和更新我最近更改过的项目。

答案 26 :(得分:2)

我们在团队中都尝试过。

由于Subclipse(来自Galileo / Helios的那个)在通过VAS验证我们的SVN服务器时遇到了一些麻烦,我们在其他地方没有问题,即TortoiseSVN客户端,浏览器(Internet Explorer 7除外)。

所以我们安装了Subversive,问题就解决了。

答案 27 :(得分:2)

自从我升级到Ganymede以来,我一直在使用Subversive。我在Linux(Ubuntu和Fedora Core),Windows XP和Mac OS X.5中使用Eclipse。除了让Subversion 1.5.1在Mac OS下使用正确的安全库的一些问题,我没有遇到任何问题。鉴于它已被采纳为Eclipse技术项目,我倾向于根据长期希望对其下注。

答案 28 :(得分:2)

Subclipse优于Subversive的优势...... IT实际工作!

我很久以前在开发Eclipse的协作插件时使用了Subclipse,它依赖于Subclipse。插件的Subclipse部分从来都不是问题,尽管整个Ant的东西仍然让我感到困惑,但好的部分是你不必理解Ant部分如何工作以了解如何使用它。

我正在尝试今天安装PDT(这是一个完整的其他博客),然后是Subversive,因为像许多人一样,它被描绘成“Eclipse SVN插件”。我无法一次安装四个连接器,所以我不得不一次安装一个连接器,一次一个地安装它们,一次只能安装SVN服务器。

我正在尝试PDT和Subversive,因为我想节省时间,而不是在插件的不同问题上花费更多时间。

我卸载了Subversive,安装了Subclipse,并且就像那样连接。

节省时间和麻烦,从一开始就去Subclipse。

答案 29 :(得分:1)

我遇到了与其他人一样的问题甚至让Subversive工作,所以我不能说它是否比Subclipse更好。

当涉及到Eclipse与标签和分支的集成时,缺乏Subclipse。你可以做到这一点,但它与CVS一样无缝。

答案 30 :(得分:1)

我也用过这两个。我遇到的问题是我的工作区中有大约150个项目,而当我选择所有插件并说“同步存储库”时,Subversive会花费很长时间。用户界面会冻结很长时间。我发现Subclipse更稳定。

无论如何,我经常组合这些工具。对于一些任务,比如检查整个分支,我更喜欢命令行。对于其他人,我使用TortoiseSVN。我主要使用Subclipse查看历史记录并直接在工具上进行比较,偶尔也会比较(我更喜欢Beyond Compare)。

答案 31 :(得分:-2)

如果你正在使用Zend的Eclipse实现Zend Studio 9,我建议使用Subclipse而不是Subversive,这是Zend Studio附带的默认设置。

我发布了Subversive和Zend Studio 9以及my solution of using Subclipse instead on the Zend forums的问题。