用于Eclipse,Subclipse和Subversive的SVN插件的优缺点是什么?[关闭]


633

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


1
我只是从Subversive移到Subclipse,因为将文件移到其他程序包才行。
海因兹

Answers:


176

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

历史分组

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

树干,分支和标签的映射

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

就像我说的那样,这些都是微小的差异,我觉得很方便。两者都可以很好地与mylyn配合使用,但是总体而言,这两个扩展之间并没有太多区别。

与Subversive合并虽然很痛苦(还没有尝试Subclipse),但我从未能够成功合并。合并的预览效果很好,但是它永远不会完成合并,否则会花费很长时间。大多数时候,我会通过命令行完成合并而没有任何问题。


3
不错的答案,只需添加两件事:1.两者的内幕设计相似,并且都是由同一家公司发起的(颠覆性活动由于子剪辑被卡住而开始)。2.对subclipse的支持要好一些。
硬编码

5
您今天对这个话题有何看法?颠覆中的合并支持有多好?我确实经常在subclipse中进行合并,并且工作正常。
PeterŠtibraný10年

5
从最新发布的版本开始,Subversive团队所做的一切都解决了合并问题。我使用的是最新版本(1.0.0.I20120601-1700),合并代码再简单不过了。
IAmYourFaja 2012年

16
我的朋友,有没有出现SVN合并的情况?
乔·普兰特

1
我已成功与subclipse合并。老实说,当做类似SVN的事情时……我便宜了,跳到TortoiseSVN。但是现在我正在尝试转向linux dev env ...我们将需要看看。
demaniak 2014年

161

我会回答这个问题。我是Subclipse的项目负责人,我管理该项目的所有发行版等。所以我的偏见很明显。

我不会过多谈论颠覆性。显然,有些用户喜欢它。产品在功能上非常相似,因为它们都是成熟产品。

我要评论的一件事是这种颠覆性概念是“官方Eclipse”插件。这是不正确的,因为没有这样的名称。Eclipse是一个开放源代码的基金会,任何想要遵循其规则,流程和IP要求等的项目都可以通过该基金会托管其项目。那并没有使您比其他任何插件都正式。

我还要指出,颠覆性技术自诞生以来一直处于“孵化”阶段,在我看来它并不能满足毕业的要求。如您在这里看到的,项目上只有一个提交者,提交活动已减少到非常低的水平。

颠覆性-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用户的功能。

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

论坛[Subclipse用户]

Eclipse 4.2是发布本文时的最新版本,但是可以肯定地说Subclipse将支持所有将来的Eclipse版本。


好的,冗长而翔实的帖子。并不是我要找的东西,但是很有见识。
Blitz 2012年

1
我对这个论点很满意,但是您在不提供Subclipse相同统计数据的情况下就放弃谈论Subversive。您是否可以编辑以包含指向Subclipse的提交历史记录的链接,以及是否有超过1个人在从事此工作的证据?:)
Tom Carchrae

我不想废话Subversive,而您正确的是Subclipse团队在过去几年中主要是2个人。我会建议Ohloh查看项目信息:ohloh.net/p/subversive
Mark Phippard

2
根据这篇文章,我已经使用Subclipse已有4个月了,但是由于Subclipse缺乏基于UI的冲突解决这一简单事实,我现在切换到Subversive。您会在与Subversive插件同步的视图中看到“编辑冲突”。
Daniel Sokolowski14年

2
为了将来参考,您始终可以从其更新站点更新SVNKit(这就是我所做的一切)。我仅在发布新的Subclipse版本时检查新版本。我没有看到您提到的问题,但该网站现已更新。
马克·皮帕德

117

在Eclipse的每个新版本中,我都安装了Subversive,因为它是Eclipse提供的标准。每次遇到识别我先前存在的项目时都会遇到问题。

因此,我最终卸载了Subversive并安装了Subclipse,这非常出色。我也经常在命令行以及在Eclipse中使用SVN,Subclipse对此没有任何问题。


16
我必须第二个。我们在存储库上稍微使用了命令行,而Subversive从未与它们配合使用。另一方面,Subclipse从来没有给出任何问题。
2011年

3
同意 我目前在OSX上安装了命令行svn版本1.7.2。我必须切换到Subclipse,因为Subversive的适配器已过期。
彼得·曾

1
我同意!颠覆性的部分奇怪行为,但Ive始终具有亚稳定的稳定结果,因此-总是回溯。
绝对无法定义2012年

1
+1可以与Subclipse并行使用命令行。
galath 2013年

从Indigo到Neon,我每次都在使用Eclipse时遇到麻烦(我不是root)。我从来没有为我做过颠覆性的工作。另一方面,subclipse + svnkit是我最终得到的唯一解决方案。
fchen

51

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


5
+1,但为了记录在案,subversion.com现在重定向到subversion.org,该链接当前链接到tigris,我想及时链接到apache。
si618

25
-1公平地说,自2006年7月发布该帖子以来,事情发生了很大变化-我真的认为与讨论不再相关。
joelittlejohn

-1受本文影响,我尝试了Subclipse。在对项目进行SVN更新期间,我得到了OutOfMemory,该功能以前在Subversive中工作。我无法对已部分检出的项目进行清理。我切换回颠覆。
奥列格·鲁登科

34

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

我不隶属于CollabNet。

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


4
自从我发表文章以来,CollabNet已使改进的合并客户端可供subclipse的未注册用户使用。:)
ChrisH'2

他们有?我找到的唯一下载它的地方需要注册。请发布链接。
米(Nemi)2010年

4
@Nemi:它是标准subclipse安装的一部分,您只需要在要安装的功能中进行检查即可。
PeterŠtibraný10年

为什么不将新信息仅纳入帖子本身?
tshepang 2011年

24

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


2
我想指出的是,所引用的博客条目已有近两年的历史了,技术变革的速度远不止于此。我确定这两种产品都已修复了旧错误,并在那时注入了新错误!:)
MetroidFan2002

您是指哪个博客条目?
migu

1
自该答案的第一个版本以来已删除的一个。
Chei

19

我实际上认为他们俩都很烂。我认为使用TortoiseSVN是更好的解决方案。它更加健壮,并且往往会更好地工作,而且我一直都遇到Subclipse和Subversive的集成问题。


4
你仍然需要一些Eclipse插件的遮丑的.svn文件夹(从排除他们搜索等)
博雷克伯纳德

11
不必要; 您可以使用过滤器排除它们。尽管如此,我还是将SVN插件用于Eclipse,因为如果必须在Eclipse之外进行所有操作,那么重构,移动和删除文件将是一件令人头疼的事情。
Paul Lammertsma,2009年

2
我发现subclipse远胜于乌龟:我将鼠标悬停并看到eclipse中的更改,我可以使用mylyn创建更改集,进行多存储库提交(用于外部),并且在进行代码审阅时,diff是完整的代码编辑器,因此当有必要进行更改时,我不必一直“跳回”。
斯蒂芬

我从来没有在Linux上运行它。
2013年

15

他们俩都有着令人发指的疣,但我无法让Subversive处理我从命令行中签出的项目,这对我来说是个阻碍。


用Subclipse做到这一点容易吗?颠覆性行为是否会以非标准的方式在文件系统上存储一些元数据,从而使它与tortiseSVN之类的混合使用的可靠性降低?如果是这样,我将使用子剪辑。
rjmunro

3
使用Subclipse,这根本没有问题-我只是告诉Eclipse从现有资源创建一个新项目。我不了解Subversive的任何内部工作原理,只是在我尝试上述操作时它没有工作。
汉克·盖伊

我的经历恰恰相反。对于Subversive,这取决于您选择了SVNkit提供程序还是Javahl?
杰伊·R。09年

1
我不确定(我使用的是默认值)。我已经停止使用任何一种来支持git-svn了。
汉克·盖伊

我尝试在Subversive中使用默认的“ provider”,但是没有用。必须跟踪有关它的SO问题,以找到更改它的选项。
EpicPandaForce 2015年

14

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

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

我已经安装了Subclipse,但是实际上使用TortoiseSVN来进行comitting /标记/分支/合并。


3
这显然是不正确的。我并排使用Subversive,TortoiseSVN和Subversion,没有任何问题。我不记得在使用Subclipse的那一天在兼容性方面有任何问题。
Paul Lammertsma,2010年

1
早在2009年12月,我希望客户从那时起就开始表现:)
jevon 2011年

12

Subclipse,因为至少它可以工作。

到目前为止,颠覆性对我来说是失败的一桶。我用Subclipse签出的所有旧项目都不能很好地工作。


两者都不能与另一个签出的项目一起使用。如果您有使用Subversive签出的旧项目,那么您会发现Subclipse将无法使用它们。如果要在一个和另一个之间切换,那么您所需要做的就是为每个对象拥有不同的工作空间。但是要说Subclipse更好,因为它可以与您一起使用Subclipse工作区确实很愚蠢。
user85259

8

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

要记住的重要一点是,所有客户端SVN软件都应使用相同的SVN文件格式(不同版本的SVN格式不同),否则您将遇到麻烦。

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

由于与SVN 1.5.5服务器不兼容,我们在运行高级(IMO)Subclipse 1.6插件时遇到问题。因此,我们恢复了颠覆性。它运行良好,尽管速度较慢,但​​存在一些问题(但有所改进)。不过,更新服务器后,我们将切换到Subclipse。是的,我们使用TortoiseSVN签出项目并将其导入Eclipse(速度更快)。

我们发现,正如其他发布者所说的那样,如果我们运行以1.6.x格式编写文件的更新版本的TortoiseSVN,将无法正常工作,但是当我们恢复到TortoiseSVN 1.5.x时,它就可以正常工作。命令行客户端也是如此(我们在Ant任务中利用了该客户端)。


6

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


6

只是一个更新。我最近重新安装了Eclipse,并面临Subclipse vs Subversive的选择。我也遇到了让Subversive工作的麻烦,所以我选择了Subclipse。

它可以完美地安装在我的Linux 64位计算机上,并且运行良好。我将诸如Update,Commit,..等最常用的功能映射到了快捷方式,这是爆炸式的。合并也很好,尽管对于较大的合并,我仍然转向TortoiseSVN。我在3.5和3.6上都尝试过,它们都可以正常工作。我最终使用3.5,因为出于某些原因,键绑定不适用于3.6。


6

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

自从Subversive首次公开发行以来,“记住凭证”选项已失效。


这也是让我选择Subclipse的原因。颠覆性无法处理“ svn + ssh”方案。
LS

6

如果您在公司中使用其中的一种,甚至可能希望将它们捆绑在自己的基于Eclipse的产品中,那么Subclipse会使您的生活变得容易得多,因为Subclipse可以通过商业友好的Eclipse Public License获得。

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

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


5

直到2008年5月,我一直在使用Subclipse,但是由于某些项目的问题,我已切换到Subversive,并且没有问题。如果您正在做一些无头的Buckminster构建之类的事情,那么Subversive绝对是您的最佳选择。


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


4

颠覆性比下面列出的Subclipse具有更多优势。但是Subversion仅有的一项功能对于使用分支至关重要。因此,我们必须使用Subclipse

颠覆性优势:

  • 视图和图标更丰富
  • 刷新提交同步项目后,将关闭提交的文件。

亚子优势

  • 比较两个分支的能力

4

+1 Subclipse
-1颠覆性

即使是很小的重构,Subversive也会造成混乱,并且存在上述验证问题。

环境:STS 2.7.2(基于Galileo)


3

对我来说,好坏都不是,但Subversive是Eclipse Ganymede平台中的默认SVN插件,因此有可能与Eclipse更好地集成。


“ Eclipse Ganymede平台中的默认SVN插件”是什么意思?Ganymede表示Eclipse 3.4版。subclipse是否仅在3.3及更早版本上有效?
rjmunro

不,Subclipse可以在更高版本中使用。对于早期版本,这是您唯一的选择。
jodonnell

8
Subversive是一个“正式的” Eclipse项目。Subclipse是一个“正式的”底格里斯河项目(也从事颠覆活动的人们)。
John Meagher's

3

除了Brendons答案之外:

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

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

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


3

当我和Helios一起工作时,我对Subclipse略有偏爱,因为它对bugtraq属性的出色支持(请参见此处)。

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


2

自升级到Ganymede以来,我一直在使用Subversive。我在Linux(Ubuntu和Fedora Core),Windows XP和Mac OS X.5中的Eclipse中使用它。除了让Subversion 1.5.1在Mac OS下使用正确的安全性库的一些问题之外,我还没有遇到任何问题。鉴于它已被作为Eclipse技术项目采用,因此我希望将其押在长期的希望上。


2

我还没有真正使用过它,但是Subversion似乎支持“ 签出为 ”,就像内置的CVS支持一样。

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

mvn eclipse:eclipse -Dwtpversion = 2.0

2

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

随着时间的流逝,子剪辑往往会变得混乱。如果不定期刷新Eclipse,Subclipse似乎会丢失其文件跟踪信息。不过,老实说,由于我具有Easy Explorer插件,因此(偶尔)使用Subversive来获取历史记录和更改信息,但是我很容易浏览并使用TortoiseSVN来提交和更新我最近更改的项目。


2

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

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


2

FWIW,我们使用的是SVN服务器的旧版本(1.4版本),我似乎还记得,曾经有一个Subclipse的更新打破了向后兼容性,要旨是“没有人应该使用这样的旧版本。 SVN”。

Subversive是唯一似乎能够处理较旧版本的产品。但是,我不记得详细信息。


2

我们在团队中都尝试过。

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

因此,我们安装Subversive并解决了问题。


2

Subclipse相对于颠覆性的优势...确实有效!

很久以前,我在为依赖Subclipse的Eclipse开发协作插件时使用了Subclipse。插件的Subclipse部分从来没有问题,尽管整个Ant事情仍然让我有些困惑,但是好处是您不必了解Ant部分的工作原理就知道如何使用它。

我今天尝试安装PDT(这是另一个博客),然后再安装Subversive,因为与许多人一样,它被描绘为“ Eclipse SVN插件”。我无法一次安装四个连接器,因此必须一次安装一个,尝试一次安装一次,并且一次无法通过SVN服务器进行身份验证。

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

我卸载了Subversive,安装了Subclipse,然后像这样进行连接。

节省您的时间和麻烦,从一开始就进行Subclipse。


1

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

无论如何,我经常结合使用这些工具。对于某些任务,例如签出整个分支,我更喜欢命令行。对于其他人,我使用TortoiseSVN。我主要使用Subclipse来查看历史记录并直接在该工具上运行比较,偶尔也可以进行比较(不过,我更喜欢“ 超越比较 ”)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.