Subclipse vs. Subversive
By barneyb on October 26, 2006
To my knowledge, there are two free Eclipse plugins to use Subversion as a team provider: Subclipse and Subversive. I started out with Subclipse, but after Eclipse started crashing a lot when I moved from coding to team tasks, I pulled down Subversive to give it a whirl, hoping it would address the crashes. Which one did I just finish uninstalling, you ask? Read on.
First off, using Subversive didn't resolve the crashing, so it's either the team framework code, or something else (I've a suspicion debug-mode Tomcat instance I've always got running).
By and large, the two plugins were very similar. Minor differences included slightly different ordering of options on the context menu and different icons/labels. A large percentage of the UI, however, is driven by the core team framework, not the individual plugins.
Some of the more significant differences included the ability to create working copy change sets with Subversive, but not Subclipse. That can be quite handy if you're stuck working on two (or more) different things in the same working copy at the same time. Subversive also had a bit more intelligent repository browsing, automatically detecting the "standard by convention" trunk/tags/branches top-level directories and letting you browse them for what they are, rather than just generic directories. For a lot of operations, Subversive seemed noticably faster, but on occasion it would take forever to do the simplest things (like commit a single small file). Finally, Subversive's various dialogs exposed a rather richer feature set, though the vast majority of it is useless to me.
Subclipse, on the other hand, had very consistent performance. It also was much faster to "spin up" when loading a project for the first time and building all it's internal metadata for label decorations and stuff. It also seemed slightly faster on synchronize operations. One rather significant advantage for Subclipse was the merge viewer. While it's not for the faint of heart, it's quite powerful, and on the couple merges I did with Subversive, I felt slighted. One little edge case that I did find, Subclipse will let you connect over SSL to a repository whose SSL cert requires manual confirmation to accept (expired, non-trusted issuer, etc.), while Subversive just said it couldn't connect to the repository without attempting to get that confirmation. Not a huge deal, but I run my repos on a self-signed SSL cert, so I couldn't connect to them with Subversive unless something else (like Subclipse) had already done the confirmation.
So which one did I keep? Subclipse. Subversive's definitely got the potential to scoot by Subclipse in terms of feature set and usability (and will get a big boost if it becomes and official Eclipse project), but at the moment, Subclipse isn't lacking a bit. To be fair, Subversive has targetted a larger feature set and is a younger product, but I'm not considering developer merit, only how well it fits my needs. I know I'll be revisiting this question again next year sometime, and I'm not confident predicting either way.
******************************
解决subversive 无法识别TortoiseSVN checkout的subversion版本信息的问题
2010-06-12
今天遇到的问题,subversive (应该是最新的版本,直接用elilipse从官网安装) 安装于 eclipse3.5.2,在本地先用TortoiseSVN 将代码从服务器端checkout下来,然后生成eclispe项目,再在eclispe的workspace重新导入项目。
之后发现subversive 没有生效,java 项目没有和svn关联起来,表现在文件/目录/项目等的图标没有subversion相关的标志。这个问题通常容易解决,标准的做法就是在项目上右键 -> team -> share project,然后正常就会识别出本地已有的subversion版本信息,提示本地信息已经能够存在,之后选择直接使用本地已有信息即可。
这个老招数了,最近两三年来都一直有效。但是今天居然不好使了:team -> share project,居然不能识别subversion版本信息!
花了点时间,最后发现和SVN Connector有关,我选择了使用SVNKit,因为我们subversion服务器端用的是1.5.*版本,因此我选用了SVNKit 1.2.3 r5745 for SVN 1.5.6的版本,结果出问题了无法识别。试着换成SVNKit 1.3.0 r5847 for SVN 1.6.2,就可以识别TortoiseSVN checkout下来的信息。
试着看了一下我使用的TortoiseSVN 的版本,"TortoiseSVN 1.6.6, Build 17493 - 32 Bit , 2009/10/19 20:22:18",在版本信息中看到:
Subversion 1.6.6,
apr 1.3.8
apr-utils 1.3.9
neon 0.28.6
OpenSSL 0.9.8k 25 Mar 2009
zlib 1.2.3
这里有“Subversion 1.6.6”的字样,也许问题就是出现在这里吧,猜想TortoiseSVN checkout下来的svn是基于1.6.6版本,因此我需要使用SVNKit 1.3.0 r5847 for SVN 1.6.2才能识别。
没有时间仔细去拿各个版本TortoiseSVN / subversive 来做精确的验证,暂时问题解决了就算了。
有遇到类似的TortoiseSVN / subversive 信息无法识别的问题的朋友,可以试试我上面的方法。