Login   I   Sitemap   I   Contact Us   I   Sales: (US) 1-866-468-5210   (EU) +49-711-67400677
Intland Software - Collaboration Begins Here
Download or Try the fully functional version of codeBeamer. It's free, simple and secure.
codeBeamer is the award winning Collaborative Application Lifecycle Management (ALM) solution for distributed software development.
Project management, wiki, document management, issue tracking, ITIL, continuous integration, version control, source code analysis and forums.

Links

Feeds

Editor Menu

Intland now on Mercurial - Part 3: Giving new momentum to the Eclipse Mercurial Plugin

This blog post is a sequel to Intland now on Mercurial and Transforming our tool set.

As written in the most recent post of this series, we found that quite some features important for us were missing from the latest version of the Eclipse Mercurial Plugin. We really wanted to move from Subversion to Mercurial, but we decided that at that point we could't do it without major productivity losses. We also realized that we couldn't wait for all improvements to be developed and tested by the community. Hence, several weeks ago, Intland Software decided to dedicate a developer to the Mercurial Eclipse plugin project. To put it simply, his task is to complete the most important missing features, and to make sure that the plugin would not be a blocker for our team anymore.

We made one major change though. Because this project will be absolutely mission critical for us even in near term, we wanted to be able to progress at our own pace and have 100% control over our internal release schedule. That's why we cloned the original repository into a new project with a codeBeamer-managed Mercurial repository, which is hosted at JavaForge. Our clone is fully open, and we call it HgEclipse to distinguish it from the original MercurialEclipse project initiated by Zingo Andersen.

We encourage the Mercurial community to pull our changes back to the original repository, and we invite everyone to clone our repository freely. Every kind of contribution including programming, testing, writing documentation is more than welcome! If you just want our binaries, those are already available at the Eclipse Update Site at JavaForge. With this project, we follow a release early approach, so new updates might pop up frequently!

We consider the current plugin version a Release Candidate (final will be rolled out in January 2010), however we have been using this in production without major problems for several weeks. We will be continuously working on this. Most importantly, our ultimate long term goal is to provide a viable option for enterprise scale collaboration, based on the Mercurial distributed version control system, the Eclipse Platform and codeBeamer, our distributed ALM platform.

Our work on the 1.5.0 line incorporates about 300 change sets. Highlights:

  • Synchronization View: - lack of a rock solid sync view has been an absolute blocker for us. In 1.5.0 it has been practically rewritten from scratch. Now it works with bi-directional synching, multiple branches, immediate push/pull operations, diff's, real change sets (not just change files) and all that jazz.
  • Working with multiple branches: - previous plugin versions were pretty much limited to working on the default branch alone. Not anymore. Our team paralelly works on several branches of our core product, so we are confident to say it.
  • Cloning: - detecting Eclipse projects is more stable, and the UI is more responsive.
  • Self-contained packaging: - in Windows, the plugin has no additional dependencies. It is bundled with hg itself and all other required packages. That means you just install the plugin through the Eclipse Update Manager, and it works out of the box. It's that simple.
  • Major performance and resource usage improvements: - long-running tasks executed in the background, agressive caching, smaller memory footprint on large projects, to name a few. (Our current benchmark is to be able to run with a project with 10,000 files.)
  • Tons and tons of bug fixes: - you can follow the progress in this bug tracker.
  • See more details here.

And finally, some important links:

Had you any questions, follow us on Twitter and tweet your questions there!

Comments:

[Trackback] This post was mentioned on Twitter by maoyang: The secrets of #Mercurial in #Eclipse: http://bit.ly/7uYWeG (via @intland)

Posted by uberVU - social comments on December 14, 2009 at 06:37 PM CET #

Nice work and welcome to the mercurialeclipse community/family. Thanks for all the help with bringing the plugin to production quality. There are many users out there that will be happy about this.

Best whishes /Zingo Andersen

Posted by Zingo Andersen on December 14, 2009 at 08:35 PM CET #

Nice work and welcome to the mercurialeclipse community/family. Thanks for all the help with bringing the plugin to production quality. There are many users out there that will be happy about this.

Best wishes!

Posted by Zingo Andersen on December 14, 2009 at 08:37 PM CET #

I, for one, welcome our new Mercurial+Eclipse overlords.

Posted by ETZel on December 18, 2009 at 10:05 PM CET #

Hi,

your work on HgEclipse is fantastic! We want to change from SVN to Mercurial, too. But its at the moment very hard for us to use it productivity. Now this releas is wonderful.

But we are still missing the capability to change only one file to previous version, not the whole change set.

Beyond Compare should also be implemented to use it with HgEclipse.

But right now HgEclipse has made a huge step into the right way!

Thanks!

Posted by MercurialFan on December 30, 2009 at 07:43 AM CET #

Is the HgEclipse 1.5.0 plugin supposed to work with Eclipse 3.3.2? What is the Eclipse version requirement for the HgEclipse plugin?

I have Eclipse 3.3.2 and the plugin does not seem to work (errorlog stacktrace at the end). The plugin was shown as enabled in Help > Software Updates ... > Manage Configurations window, but no HgEclipse functions showed up. I tried with Eclipse 3.4 and 3.5 and that worked, however.

Error log/stacktrace:

Could not instantiate provider com.vectrace.MercurialEclipse.team.MercurialTeamProvider for project com.vc...

org.eclipse.team.core.TeamException: Could not instantiate provider com.vectrace.MercurialEclipse.team.MercurialTeamProvider for project com.vc...
at org.eclipse.team.core.RepositoryProvider.mapNewProvider(RepositoryProvider.java:165)
at org.eclipse.team.core.RepositoryProvider.mapExistingProvider(RepositoryProvider.java:235)
at org.eclipse.team.core.RepositoryProvider.getProvider(RepositoryProvider.java:507)
at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.isMappedToCVS(CVSLightweightDecorator.java:196)
at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.decorate(CVSLightweightDecorator.java:151)
at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate(LightweightDecoratorDefinition.java:253)
at org.eclipse.ui.internal.decorators.LightweightDecoratorManager$LightweightRunnable.run(LightweightDecoratorManager.java:71)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:857)
at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decorate(LightweightDecoratorManager.java:336)
at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations(LightweightDecoratorManager.java:322)
at org.eclipse.ui.internal.decorators.DecorationScheduler$1.ensureResultCached(DecorationScheduler.java:369)
at org.eclipse.ui.internal.decorators.DecorationScheduler$1.run(DecorationScheduler.java:329)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

Posted by Vic on January 09, 2010 at 03:52 AM CET #

Post a Comment:
  • HTML Syntax: Allowed