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

639

Eclipse中的SVN被分为两个阵营。SVN人员开发了一个名为Subclipse的插件。Eclipse团队有一个名为Subversive的插件。总体而言,它们都可以完成相同的事情。每个插件各有什么优点和缺点呢?


1
我刚从Subversive转到Subclipse,因为将文件移动到其他包中非常方便 - Heinzi
32个回答

177

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

历史分组

当我浏览一个分支的历史记录时,不仅仅是看到每个提交的一堆行,而是可以按今天、本周等分组显示提交记录。

主干、分支和标签的映射

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

像我说的那样,这些都是我发现很方便的小差别。两者都可以很好地与mylyn配合使用,但总的来说这两个扩展之间没有太大的区别。

但是,使用Subversive进行合并很麻烦(我没有尝试过Subclipse),我从来没有成功过。合并的预览很棒,但它永远无法完成合并,或者需要花费很长时间。大多数时候,我通过命令行完成合并,没有任何问题。


3
很好的回答,只有两点需要补充:
  1. 两者在实现方式上非常相似,都起源于同一家公司(subversive是由于subclipse卡顿而启动的)。
  2. 对于subclipse的支持略微更好。
- Hardcoded
5
你对这个话题有什么看法?Subversive在合并支持方面表现如何?我经常在Subclipse中进行合并,它运行得还不错。 - Peter Štibraný
5
Subversive团队所做的一切都已解决了合并问题,截至最近几个版本。我正在使用最新版本(1.0.0.I20120601-1700),合并代码再也没有比现在更容易的了。 - IAmYourFaja
17
朋友,SVN合并有没有不麻烦的情况? - Joe Plante
1
我已经成功地使用subclipse进行了合并。但是,老实说,当进行像这样的SVN密集型操作时...我会选择TortoiseSVN。但是现在我正在尝试转移到Linux开发环境...我们需要看看情况。 - demaniak

162
我将尝试回答这个问题。我是Subclipse的项目负责人,管理该项目的所有发布等事务。因此,我的偏见是显而易见的。
我不会过多讨论Subversive。显然,有用户使用它并且喜欢它。从功能上讲,这两个产品非常相似,都是成熟的产品。
我想评论的一件事是,某种程度上Subversive是“官方Eclipse”插件的观念是错误的。这是不正确的,因为没有这样的指定。Eclipse是一个开源基金会,任何想遵循他们的规则、流程和知识产权要求等的项目都可以在基金会托管他们的项目。这并不会使你比任何其他插件更加官方。
我还要注意到,Subversive自成立以来一直处于“孵化”阶段,我认为它永远不会满足毕业要求。正如您在这里看到的,该项目只有一个提交者,提交活动已经减少到非常低的水平。 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用户的人。
如果有特定的UI功能在Subversive中被人们希望在Subclipse中实现,我鼓励您访问我们的社区并参与我们的讨论论坛。也许其他用户分享您的观点,我们可以一起改善UI。
论坛[Subclipse-users]
Eclipse 4.2是本文发布时的最新版本,但可以安全地假定Subclipse将支持所有未来的Eclipse版本。

1
我被这个论点说服了,但你在批评Subversive的同时没有给出Subclipse的同样的数据。你能否编辑一下,包括Subclipse的提交历史链接和证明有超过1人在开发它的证据? :) - Tom Carchrae
一些人认为Subversive是“官方的Eclipse”插件,原因如下:1)有一个http://www.eclipse.org/subversive/,但没有http://www.eclipse.org/subclipse/;2)安装后,所有链接都引用eclipse.org而不是其他网站;3)错误记录在eclipse.org上;4)源代码编写为org.eclipse.team而不是com.mycom。如果它不是官方的Eclipse版本,那么它看起来确实像是。 - David Newcomb
2
根据这篇文章,我已经使用Subclipse 4个月了,但现在我已经转换到Subversive,因为Subclipse缺乏基于UI的冲突解决功能;而Subversive插件可以在同步视图中提供“编辑冲突”选项。 - Daniel Sokolowski
我知道。主页上就写着 - http://subclipse.tigris.org "Subclipse 1.12.x更新站点已经创建,支持Subversion 1.9.x。正如下面的讨论帖子所解释的那样,目前这个站点仍然包含Subclipse 1.10.x,但是添加了对Subversion 1.9.x的支持。由于JavaHL库的加载方式,我们无法使用单个更新站点同时维护对1.8.x和1.9.x的支持。" - Mark Phippard
2
作为以后的参考,你可以随时从他们的更新站点更新SVNKit(这就是我所做的)。我只在发布新的Subclipse版本时检查新版本。我没有看到你提到的问题,但现在该网站已经更新了。 - Mark Phippard
显示剩余6条评论

117
在安装每个新版本的Eclipse时,我会安装Subversive,因为它是Eclipse提供的标准。但每次安装后,它都无法识别我的现有项目,所以我最终卸载了Subversive并安装了Subclipse代替,它非常出色。我还经常在命令行和Eclipse中使用SVN,而Subclipse对此没有任何问题。

17
我赞同这个观点。我们在代码库上经常使用命令行工具,Subversive却无法正常运作,而Subclipse却从未出现问题。 - abeger
3
同意。目前我在OSX上安装了命令行svn版本1.7.2。由于Subversive的适配器过时了,我不得不转而使用Subclipse。 - Peter Tseng
1
我同意!Subversive的行为有点奇怪,但我一直使用Subclipse并取得了相当稳定的结果,所以我总是返回它。 - definitely undefinable
1
+1 的意思是可以在 Subclipse 中同时使用命令行。 - galath
我一直在使用从Indigo到Neon的Eclipse,每次都无法使svn工作(我不是root用户)。 我从未成功使用subversive。 另一方面,subclipse + svnkit是我最终采用的唯一解决方案。 - fchen

51

5
记录一下,+1 的意思是同意或支持。但要注意的是,subversion.com 现在重定向到 subversion.org,后者目前链接到 tigris,我认为它最终将链接到 apache。 - si618
26
公平地说,自从2006年7月那篇帖子以来,情况发生了很大变化,我真的不认为它现在还与讨论有关。 - joelittlejohn
受到这篇文章的影响,我尝试了Subclipse。在更新之前可以在Subversive中正常工作的项目中,我遇到了OutOfMemory错误。我无法对部分检出的项目进行清理。因此,我决定切换回Subversive。 - Oleg Rudenko

34

如果你在Subversion中进行了大量的合并操作,那么你可能更喜欢CollabNet Desktop - Eclipse Edition。你需要在CollabNet注册一个账户来获取下载链接,但它是免费的。它本质上就是带有更好的合并UI的Subclipse。

我与CollabNet无关。

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


4
自从我发布了这篇文章以来,CollabNet已经将他们改进的合并客户端提供给了Subclipse的非注册用户。 :) - ChrisH
他们有吗?我找到的唯一下载地址需要注册。请发一个链接。 - Nemi
4
@Nemi:它是标准的subclipse安装的一部分,您只需在要安装的功能中选中它即可。 - Peter Štibraný
为什么不将新信息直接合并到帖子中呢? - tshepang

24

我会选择Subclipse,因为我甚至都无法让Subversive正常工作 ;)


4
我想指出,所提到的博客文章已经将近两年了,科技发展速度比那快得多。我相信这段时间内这两款产品都已经修复了旧问题并引入了新的问题! :) - MetroidFan2002
你指的是哪篇博客文章? - migu
1
自此答案第一个版本以来已被删除的那个。 - Chei

19

我其实认为它们都有点糟糕。在我看来,使用 TortoiseSVN 是一个更好的解决方案。它更加稳健且通常效果更好,而且我一直遇到 Subclipse 和 Subversive 的整合问题。


4
你仍然需要一些 Eclipse 插件来隐藏丑陋的 .svn 文件夹(将它们从搜索结果中排除等)。 - Borek Bernard
11
不一定要排除它们; 您可以使用筛选器进行排除。然而,如果您必须在Eclipse之外完成重构、移动和删除文件,这将会是一个头疼的问题,因此我建议使用Eclipse的SVN插件。 - Paul Lammertsma
2
我发现Subclipse比Tortoise好得多:我可以在Eclipse中悬停并查看更改,可以使用Mylyn创建更改集,进行多存储库提交(用于外部),并且在进行代码审查时,差异是完整的代码编辑器,因此当需要更改时我不必一直“跳回去”。 - Stephen
我从未在Linux上运行它。 - ceving

15

它们两个都有相当丑陋的瑕疵,但我无法让Subversive在我从命令行检出的项目中正常工作,这对我来说是一个致命问题。


使用Subclipse做这件事容易吗?Subversive是否存储一些元数据不在文件系统的标准方式中,使得将其与TortoiseSVN等工具混合使用不太可靠?如果是这样,我会选择Subclipse。 - rjmunro
3
使用 Subclipse 完全没有问题,我只需告诉 Eclipse 从现有源代码创建新项目。我不了解 Subversive 的任何内部工作原理,只知道当我尝试上述操作时它无法工作。 - Hank Gay
我有完全相反的经验。对于Subversive来说,这取决于您选择了SVNkit提供程序还是Javahl。 - Jay R.
1
我不确定(我一直在使用默认设置)。我已经停止使用它们中的任何一个,转而使用git-svn。 - Hank Gay
我尝试在Subversive中使用默认的“provider”,但它没有起作用。不得不找到一个关于它的SO问题,才找到更改选项。 - EpicPandaForce

14

试用了这两个插件,但是 Subclipse 和 Subversive 都很糟糕。安装均非常困难。如果您使用 Subversive,则 无法使用外部 SVN 客户端

然而,在 Eclipse 中需要安装 SVN 客户端来跟踪更改,以及避免损坏本地仓库。

我安装了Subclipse,但是实际上进行提交/标记/分支/合并时使用的是TortoiseSVN


3
这是毫无根据的说法。我同时使用Subversive、TortoiseSVN和subversion,没有任何问题。回想起来,当我使用Subclipse时,我也没有遇到过兼容性问题。 - Paul Lammertsma
1
这是在2009年12月的事情了。我希望客户自那时以来已经开始表现良好 :) - jevon

12

Subclipse,因为它至少能正常工作。

对我来说,Subversive一直是个失败的选择。它无法与我之前用Subclipse检出的所有旧项目协同工作。


两者都无法处理由另一个检出的项目。如果您使用Subversive检出了旧项目,则会发现Subclipse无法处理它们。如果您想在两者之间切换,那么您只需要为每个工作区设置不同的工作区即可。但是说Subclipse更好,因为它可以与您的Subclipse工作区一起使用,这实在是相当愚蠢的。 - user85259

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接