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 vs Subversive的选择.我也有一些麻烦试图让Subversive工作,所以我去了Subclipse.
它完全安装在我的Linux 64位机器上,运行得很好.我将最常见的函数,如Update,Commit,..映射到快捷方式,这是一个爆炸.合并也很好,虽然对于更大的合并,我仍然转向TortoiseSVN.我尝试使用3.5和3.6,它们都工作正常.我最终使用3.5因为某些原因键绑定不适用于3.6.
如果您使用svn + ssh作为访问存储库的协议,我强烈建议您选择Subclipse:Subversive不够智能,无法正确记住您的凭据,并且每次更新工作副本时都会提示您输入用户名和私钥.对于你可能已经设置的每个svn-external.
"记住凭证"选项在此背景下被打破,并且自Subversive首次公开发布以来一直存在.
如果您在公司中使用其中一个,甚至可能希望将它们捆绑在自己的基于Eclipse的产品中,那么使用Subclipse可以让您的生活更轻松,因为它可以在业务友好的Eclipse Public License下使用.
另一方面,颠覆性需要所谓的连接器才能完全发挥作用.那些有不同的许可证.因此,您可能最终只为Subversive功能提供两个或三个不同的许可证,而所有其他 Eclipse插件都在这个EPL之下.这也是为什么这些连接器不在eclipse.org上托管的原因.
这就是为什么在Subversive安装后动态下载它们(这也意味着只是镜像eclipse.org更新站点并不能在公司网络中为您提供可用的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一起使用.