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?
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.
1.0.0.I20120601-1700
) and merging code couldn't be any easier. –
Demented 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.
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.
After reading this post, I changed to Subclipse hands down.
http://eclipsezone.com/eclipse/forums/t77149.rhtml#92035407
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.
I would say Subclipse, as I couldn't even get Subversive working ;)
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.
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.
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.
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.
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).
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.
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).
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.
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.
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.
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.
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
+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)
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 BUGID
s), 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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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).
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.
© 2022 - 2024 — McMap. All rights reserved.