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

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

What are the pros and cons of the SVN plugins for Eclipse, Subclipse and Subversive?

Eclipse中的SVN分为两个阵营。 SVN人开发了一个名为Subclipse的插件。 Eclipse人员有一个名为Subversive的插件。 从广义上讲,他们都做同样的事情。 各有哪些优缺点?


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

分组历史

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

树干,分支和标签的映射

Subversive假定默认的svn布局:trunk,branches,tags(你可以更改),所以无论何时你想要标记或分支,只需点击一下,你就可以提供标签或分支的名称。

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

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


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

我不打算谈论Subversive。显然,有些用户使用它并喜欢它。功能上的产品非常相似,因为它们都是成熟产品。

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

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

颠覆性 - SVN团队提供商

那么为什么要使用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版本。


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

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


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


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

我不隶属于CollabNet。

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


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


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


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


我尝试了他们两个,Subclipse和Subversive都很糟糕。两者都很难安装。如果使用Subversive,则无法使用外部SVN客户端。

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

我安装了Subclipse,但是使用TortoiseSVN来实际进行comitting / tagging / branching / merge。


Subclipse,因为至少它有效。

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


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

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

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

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

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


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


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

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

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


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

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


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

"记住凭证"选项在此背景下被打破,并且自Subversive首次公开发布以来一直存在。


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


如果您使用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一起使用。


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

颠覆性优势:

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

Subclipse的优势

  • 能够比较两个分支

+1 Subclipse
-1颠覆

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

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


作为Brendons的补充回答:

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

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

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


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


虽然我同时使用Helios,但我对Subclipse略有偏好,因为它对bugtraq属性有很好的支持(详情请参见此处)。

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


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

颠覆是唯一一个似乎能够处理旧版本的人。不过,对不起,我记不起细节了。


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

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


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


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

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


Subclipse优于Subversive的优势......它实际上可以工作!

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

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

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

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

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


我们在团队中都尝试过。

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

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


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

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

1
mvn eclipse:eclipse -Dwtpversion=2.0

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

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


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

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


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

我发布了Subversive和Zend Studio 9的问题以及我在Zend论坛上使用Subclipse的解决方案。


推荐阅读