What are the pros and cons of the SVN plugins for Eclipse, Subclipse and Subversive?

SvnEclipseSubclipseSubversive

Svn Problem Overview


SVN in Eclipse is spread into two camps. The SVN people have developed a plugin called Subclipse. The Eclipse people have a plugin called Subversive. Broadly speaking they both do the same things. What are the advantages and disadvantages of each?

Svn Solutions


Solution 1 - Svn

Both are very similar but Subversive is the "eclipse svn provider". I primarily use Subversive because of a few convenient features:

Grouping of history

When I'm browsing the history of a branch instead of just seeing a bunch of rows for every commit it can group commits by today, week, etc.

Mapping of trunk, branches, and tags

Subversive assumes the default svn layout: trunk, branches, tags (which you can change), so whenever you want to tag or branch it is one click and you provide the name of the tag or branch.

Like I said these are minor differences that I just find convenient. Both work great with mylyn, but overall there really isn't a whole lot of differences with these two extensions.

Merging with Subversive is a pain though (haven't tried Subclipse), I've never been able to successfully merge. The preview of the merge is great but it would never complete the merge or it will take way to long. Most of the time I complete merging through the command line without any issues.

Solution 2 - Svn

I will take a crack at answering this. I am a project lead for Subclipse, and I manage all of the releases, etc. for the project. So my biases are obvious.

I am not going to talk too much about Subversive. Clearly, there are users that use it and like it. Functionally the products are very similar as both are mature products.

One thing I do want to comment on is this notion that somehow Subversive is the "official Eclipse" plugin. That is just not true, as there is no such designation. Eclipse is an open-source foundation and any project that wants to follow their rules, process and IP requirements, etc. can host their project with the foundation. That does not make you any more or less official than any other plugin.

I will also note that Subversive has remained in the "Incubation" phase since its inception, and it does not appear to me that it will ever meet the requirements for graduation. As you can see here, there has been only one committer on the project and commit activity has dwindled to very low levels.

Subversive - SVN Team Provider

So why should you use Subclipse? We are actively involved with Subversion itself. I am a Subversion PMC member and help maintain the Java language bindings so that we (and other projects like Subversive) can use the API.

We work directly with Subversion to define and improve the API and make sure necessary features are exposed to clients like Subclipse. We also work closely and collaborate with the Visual Studio integration (AnkhSVN) and TortoiseSVN teams to make sure there is a relatively consistent user experience across clients.

Subclipse is still actively maintained and we maintain support for Eclipse versions 3.2 to 4.2. We are always trying to listen to feedback and incorporate ideas from the community. The recent 1.8.x releases include internal changes that greatly improve performance of Eclipse when working with large projects (that is when you really see it).

Subclipse has led the way in areas like merge tracking support, where we worked closely with the Subversion team in first adding this feature in 1.5 and then evolving it in subsequent releases. We were often the initial consumers of new API and provided the project with the feedback needed to harden the feature. We also introduced a graphical revision graph feature a couple years ago, becoming the first to bring this long asked for feature to Eclipse users.

If there are specific UI features in Subversive that people would like to see made in Subclipse, I would encourage you to visit our community and engage in our discussion forums. Maybe other users share your views and we can improve the UI together.

Forum [Subclipse-users].

Eclipse 4.2 is the latest release at the time of this post, but it is safe to assume that Subclipse will support all future Eclipse releases as they are made.

Solution 3 - Svn

With every new version of Eclipse, I install Subversive, because it's the standard provided by Eclipse. And every time, it has issues recognizing my pre-existing projects.

So I end up uninstalling Subversive and installing Subclipse instead, which works marvellously. I also frequently use SVN from the command line as well as in Eclipse, and Subclipse has no problems with this.

Solution 4 - Svn

Solution 5 - Svn

If you do much merging with Subversion then you will probably prefer CollabNet Desktop - Eclipse Edition. You have to register an account with CollabNet to get the download, but it is free. It is essentially Subclipse with a better merge UI.

I am not affiliated with CollabNet.

CollabNet has made their improved merge client available to non-registered users of Subclipse. You get it by selecting the CollabNet Merge Client feature when installing Subclipse from the update site.

Solution 6 - Svn

I would say Subclipse, as I couldn't even get Subversive working ;)

Solution 7 - Svn

I actually think both of them kind of suck. Using TortoiseSVN is a far better solution in my opinion. It's far more robust and tends to just work better, and I've always had integration issues with Subclipse and Subversive.

Solution 8 - Svn

They both have pretty heinous warts, but I couldn't get Subversive to work with a project I had checked out from the command-line, and that was a show-stopper for me.

Solution 9 - Svn

I tried both of them, and both Subclipse and Subversive are awful. Both are challenging to install. If you use Subversive, you cannot use an external SVN client.

However you need to have a SVN client installed in Eclipse to keep track of changes, and also to not corrupt your local repository.

I have Subclipse installed, but use TortoiseSVN to actually do comitting/tagging/branching/merging.

Solution 10 - Svn

Subclipse, because at least it works.

Subversive has been a bucket of fail for me so far. It wouldn't play nice with all of my old projects I had checked out with Subclipse.

Solution 11 - Svn

Certainly both IDE plugins have their issues. But neither precludes the parallel use of other solutions like TortoiseSVN or command-line. I use all three for my projects at work.

The important thing to remember is that all your client SVN software should use the same SVN file format--which differs between versions of SVN--or you are asking for trouble.

Another issue we found is when your client software uses a different SVN file format than the server. (By file format, I mean the way all the information is represented in all those seemingly invisible .svn files that effectively record what SVN needs to know about your project files.) That can wreak havoc. There's a documented bug between 1.5 server and 1.6 clients, but I can't find the link right now.

We had issues running the superior (IMO) Subclipse 1.6 plugin because of incompatibilities with our SVN 1.5.5 server. So we reverted to Subversive. It works fine, albeit slow and somewhat buggy (but improving). We will switch to Subclipse when our server is updated, though. And yes, we check out our projects with TortoiseSVN and import them into Eclipse (it's faster).

We found that, as other posters said here, it would NOT work if we ran newer versions of TortoiseSVN that wrote files in 1.6.x format, but when we reverted to TortoiseSVN 1.5.x, it worked just fine. The same was true of the command-line client (which we leverage with our Ant tasks).

Solution 12 - Svn

If you are using svn+ssh as the protocol to access your repository I strongly suggest you to choose Subclipse: Subversive is not intelligent enough to remember your credentials properly and prompts you for username and private key every single time you update your working copy and also for each svn-external you may have set up.

The "remember credentials" options is broken in this context and has been since the first public release of Subversive.

Solution 13 - Svn

I chose to go with Subclipse since it is most closely associated with the Subversion project and so more likely to better handle the core SVN functionality. If at all it fails to perform any function then I have TortoiseSVN as a backup.

Solution 14 - Svn

Just an update. I recently was reinstalling Eclipse and was faced with choice of Subclipse vs Subversive. I, also, had my share of troubles trying to get Subversive to work so I went for Subclipse.

It installed perfectly on my Linux 64 bit machine and is running just fine. I mapped most common functions like Update, Commit, .. to shortcuts and it's a blast. The merging is good too, although for bigger merges I still turn to TortoiseSVN. I tried it with both 3.5 and 3.6, and they both work fine. I ended up using 3.5 because for some reason key binding were not working with 3.6.

Solution 15 - Svn

If you are using one of them in your company and maybe even want to bundle them in own Eclipse-based products, your life is much easier with Subclipse, because it is available under the business-friendly Eclipse Public License.

Subversive on the other hand needs so-called connectors to fully work. And those have separate and different licenses. So you may end up with two or three different licenses just for the Subversive functionality, while all other Eclipse plugins are just under that one EPL. That's also the reason why those connectors are not hosted at eclipse.org.

And that's why they are downloaded dynamically after the Subversive installation (which also means that simply mirroring the eclipse.org update site does not give you a usable Subversive offline installation in your company network).

Solution 16 - Svn

Up until about May 2008 I was using Subclipse, but due to issues with some projects, I've switched over to Subversive and am using that with no issues. If you are doing something fancy like headless Buckminster builds, then Subversive is definitely the one to go with.

Solution 17 - Svn

If you use TortoiseSVN and regularly update the version you may find Eclipse with Subversive losing all SVN information and throwing some scary errors.

The reason being the new version of TortoiseSVN adds new meta data that Eclipse Subversive does not understand unless you also keep your Eclipse SVN connectors up to date as well.

I generally use the SVNKit connector, so TortoiseSVN 1.5.x will work with Eclipse SVNKit connector 1.5.x and TortoiseSVN 1.6.x will work with Eclipse SVNKit connector 1.6.x.

Solution 18 - Svn

+1 Subclipse
-1 Subversive

Subversive gets confused after even minor refactoring and has validation issues as above.

Environment: STS 2.7.2 (based on Galileo)

Solution 19 - Svn

Subversive has more advantages than the Subclipse as listed below. But just one feature Subversion does not have is so critical about using branches. So we have to use Subclipse.

Subversive advantages:

  • View and icons are more informative
  • After commit sync items are refreshed, committed file is closed.

Subclipse advantage

  • ability to compare two branches

Solution 20 - Svn

For me neither is better or worse, but Subversive is the default SVN plugin in Eclipse Ganymede platform, so there's a chance that it's better integrated with Eclipse.

Solution 21 - Svn

As an addition to Brendons answer:

We use Subversion since version 1.5.1 and used Subclipse first. But because we greatly depend on the merging feature, we switched to Subversive which is more convenient and has a seperate Reintegrate option in the merging dialog.

One bug that might hinder at merging is that if you select revisions explicitly, it doesn't take the last revision listed. E.g. "101-100" doesn't merge r100 and "100" thus doesn't merge anything at all. (version 0.7.5)

And it has uses the same indicators as the CVS plugin.

Solution 22 - Svn

While I got both working with Helios, I have a slight preference for Subclipse because of its excellent support for bugtraq properties (details here).

The History view shows a separate column (titled bugtraq:label, displaying BUGIDs), and the context menu has a dedicated action to "Open Bug URL" (linking to bugtraq:url) -- I couldn't figure out how to access any of this info with Subversive.

Solution 23 - Svn

I've used both, and while Subclipse has been flaky for me, Subversive (at least with a previous version) locked out an account of my coworker when he accidentally put in the wrong credentials (the network login is used to access the subversion repository).

Subclipse tends to get disorganized over time. If Eclipse is not refreshed regularly Subclipse seems to lose its file tracking information. Honestly, though, since I have the Easy Explorer Plugin, I use Subversive (occasionally) for history and change information, but I easy explore and use TortoiseSVN for commits and updates to the projects I know I've changed recently.

Solution 24 - Svn

I've been using Subversive since I upgraded to Ganymede. I use it with Eclipse in Linux (Ubuntu and Fedora Core), Windows XP and Mac OS X.5. Aside from some issues getting Subversion 1.5.1 to use the right security libraries under Mac OS, I haven't had any problems. Given that it has been adopted as an Eclipse technology project, I am inclined to place my bets on it, in terms of long-term hopes.

Solution 25 - Svn

I have not really used it, but it seems Subversive supports "Check Out As", just like the built-in CVS support does.

Like, to take a project from SVN and be able to run it as a web project, one might be able to do so in one go. But to get the same result in Subclipse, I just check out the sources and run:

mvn eclipse:eclipse -Dwtpversion=2.0

Solution 26 - Svn

I have just discovered that I cannot figure out how to view a properties diff with Subclipse. In Subversive you select two revisions in the history view, right-click and select compare properties from the popup. This is enough for me to stick with Subversive.

The reason for trying to switch was Subversive's strange behavior on OS X: Some automatic operation called 'svn cache update' hogged the CPU at abnormal levels after every 'svn update' run, always taking an annoyingly long time to complete.

Solution 27 - Svn

FWIW, we are using an ancient version of SVN server (1.4 something), and I seem to remember that at one point there was an update to Subclipse that broke backward compatibility, and the gist was "nobody should be on such an old version of SVN anyway".

Subversive was the only one that seemed to be able to handle the older version. I can't remember the details, though, sorry.

Solution 28 - Svn

We tried both in our team.

Since Subclipse (the one from Galileo/Helios) had some trouble authenticating our SVN server via VAS, we had no problem elsewhere, i.e. TortoiseSVN client, browsers (except Internet Explorer 7).

So we installed Subversive and the problem was resolved.

Solution 29 - Svn

The advantage of Subclipse over Subversive... IT ACTUALLY WORKS!

I used Subclipse a long time ago when developing a collaborative plugin for Eclipse that depended on Subclipse. The Subclipse part of the plugin was never a problem, although the whole Ant thing still confuses me a bit, but the good part is you don't have to understand how the Ant part works to know how to use it.

I am attempting to install PDT today (which is a whole other blog) and then Subversive because, like many, it is portrayed as "The Eclipse SVN Plugin". I was unable to install the four connectors at once, so I had to install them one at a time and one at a time I tried them, and one at a time it could not authenticate with the SVN server.

I am trying PDT and Subversive, because I want to SAVE time, not spending more of it on different issues with a plugin.

I uninstalled Subversive, installed Subclipse, and connected just like that.

Save yourself the time and hassle, go Subclipse from the start.

Solution 30 - Svn

I've also used both. I had the problem that I have around 150 projects on my workspace, and Subversive would take an awful long time when I selected all plugins and said "synchronize repository". The UI would freeze for an extremely long time. I find Subclipse to be more stable.

Anyway, I combine the tools a lot. For some tasks like checking out whole branches I prefer the command line. For others I use TortoiseSVN. I use Subclipse mostly to view history and run comparisons directly on the tool, and occasionally to compare (I prefer Beyond Compare for that, though).

Solution 31 - Svn

I had the same problem as some others even getting Subversive to work, so I can't say if it's better than Subclipse.

Subclipse is really lacking when it comes to integration with Eclipse for tags and branches. You can do them, but it's nowhere near as seamless as it is with CVS.

Solution 32 - Svn

If you are using Zend Studio 9, Zend's implementation of Eclipse, I recommend using Subclipse instead of Subversive which comes shipped with Zend Studio be default.

I have posted a problem with Subversive and Zend Studio 9 and my solution of using Subclipse instead on the Zend forums.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionrjmunroView Question on Stackoverflow
Solution 1 - SvnBrendon-Van-HeyzenView Answer on Stackoverflow
Solution 2 - SvnMark PhippardView Answer on Stackoverflow
Solution 3 - SvnCieraView Answer on Stackoverflow
Solution 4 - SvnSteveView Answer on Stackoverflow
Solution 5 - SvnChrisHView Answer on Stackoverflow
Solution 6 - SvnprakashView Answer on Stackoverflow
Solution 7 - SvnEthan GundersonView Answer on Stackoverflow
Solution 8 - SvnHank GayView Answer on Stackoverflow
Solution 9 - SvnjevonView Answer on Stackoverflow
Solution 10 - Svnwarren_sView Answer on Stackoverflow
Solution 11 - SvndjkierasView Answer on Stackoverflow
Solution 12 - SvnjumarView Answer on Stackoverflow
Solution 13 - SvnKalenGiView Answer on Stackoverflow
Solution 14 - SvnMike StarovView Answer on Stackoverflow
Solution 15 - SvnBananeweizenView Answer on Stackoverflow
Solution 16 - SvnOisin HurleyView Answer on Stackoverflow
Solution 17 - SvnPaulGView Answer on Stackoverflow
Solution 18 - SvnJohnView Answer on Stackoverflow
Solution 19 - SvnÖzmen AdıbelliView Answer on Stackoverflow
Solution 20 - SvnmacbirdieView Answer on Stackoverflow
Solution 21 - SvnmasiView Answer on Stackoverflow
Solution 22 - SvnRahel LüthyView Answer on Stackoverflow
Solution 23 - SvnMetroidFan2002View Answer on Stackoverflow
Solution 24 - SvnrjrayView Answer on Stackoverflow
Solution 25 - SvnArjanView Answer on Stackoverflow
Solution 26 - SvnlkraavView Answer on Stackoverflow
Solution 27 - SvnKevin PauliView Answer on Stackoverflow
Solution 28 - SvnYinchView Answer on Stackoverflow
Solution 29 - SvnpfuriView Answer on Stackoverflow
Solution 30 - SvnMario OrtegónView Answer on Stackoverflow
Solution 31 - SvnstuView Answer on Stackoverflow
Solution 32 - SvnBrian_CTView Answer on Stackoverflow