提问



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

最佳参考


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


历史分组


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


树干,分支和标签的映射


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


就像我说的那些是我觉得方便的细微差别。两者都与mylyn配合得很好,但总体而言,这两个扩展并没有太大差异。


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

其它参考1


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


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


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


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


颠覆性 - SVN团队提供商 [9]


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


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


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


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


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


论坛 [[Subclipse-users]] 。[11]


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

其它参考2


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


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

其它参考3


看完这篇文章后,我换了Subclipse手
http://eclipsezone.com/eclipse/forums/t77149.rhtml#92035407[12]

其它参考4


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


我不隶属于CollabNet。


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

其它参考5


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

其它参考6


我其实觉得他们俩都很糟糕。在我看来,使用TortoiseSVN是一个更好的解决方案。它更强大,往往更好地工作,而且我总是遇到与Subclipse和Subversive的集成问题。[13]

其它参考7


他们都有非常令人发指的疣,但我无法让Subversive与我从命令行检查过的项目一起工作,这对我来说是个噱头。

其它参考8


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


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


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

其它参考9


Subclipse,因为至少它有效。


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

其它参考10


当然,这两个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任务)也是如此。[17]

其它参考11


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

其它参考12


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


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

其它参考13


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


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

其它参考14


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


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


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

其它参考15


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

其它参考16


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


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


颠覆性优势:



  • 视图和图标提供更多信息

  • 刷新提交同步项后,将关闭已提交的文件。



Subclipse 优势



  • 比较两个分支的能力


其它参考18


+1 Subclipse

-1颠覆


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


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

其它参考19


对我来说既不好也不坏,但Subversive是Eclipse Ganymede平台中的默认SVN插件,所以它有可能更好地与Eclipse集成。

其它参考20


作为Brendons的补充回答:


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


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


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

其它参考21


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


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

其它参考22


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

其它参考23


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


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


mvn eclipse:eclipse -Dwtpversion=2.0

其它参考24


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


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

其它参考25


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


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

其它参考26


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


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

其它参考27


我们在团队中都尝试过。


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


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

其它参考28


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


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


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


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


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


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

其它参考29


我也使用过两者。我遇到的问题是我的工作区有大约150个项目,Subversive会花很长时间选择所有插件并说同步存储库.UI会冻结很长时间我发现Subclipse更稳定了。


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