The new MuleForge works with different project hosting platforms, it is now a repository of all things Mule rather than a project hosting service. I recently migrated the Maven Mule Plugin from our old MuleForge infrastructure to GitHub. This was quite a journey and I had to trawl the web quite a bit to gather all the required steps to make the change. So here’s the full story, in case anyone wants to do the same.
Migrating from SVN to git
The very first thing I did was to migrate the source. There are plenty of (differing) tutorials out there but the “Migrating to Git” chapter in the Pro Git book got me started quite nicely.
There are some more steps you have to perform, though. The instructions tell you to convert all the SVN tags into git tags. But you have to actually push them so they appear on GitHub:
After everything is pushed and up on GitHub it’s time to get rid of the git-svn info:
This affects only the local repository (i.e. that info was not pushed to GitHub) but its a good idea to clean up your local copy.
Migrating the docs
Another task is migrating the documentation. The old, confluence-based markup can be converted to github’s markdown documentation format quite easily. But how do you preview the new documentation? Github’s gists come in handy here. Just create a new gist, enter README.md as file name (well the name actually doesn’t matter as long as you have the .md extension) and paste your new documentation. As soon as you save your gist it will be rendered giving you a nice preview. Continue editing until you’re satisfied and put the end result into a toplevel README.md in your new github repository. Volià, documentation.
I hope this mini-tutorial helps you with your migration of your existing forge project. If you have a Mule project that was not previously hosted on MuleForge (i.e. GitHub or Google Code), now is a good time to register your project and give it some more visibility to the Mule community.