Blog

Intland now on Mercurial – Part 3: Giving new momentum to the Eclipse Mercurial Plugin
Dec 14, 2009

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!

About intland

Provider of Agile ALM solutions. Father of JavaForge. Maintainer of MercurialEclipse. Into all things agile & DVCS. View all posts by intland

Leave a Reply

Your email address will not be published. Required fields are marked *

*


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>