Git, Top Eclipse Juno Feature #6

Git, Top Eclipse Juno Feature #6

Designing and delivering a piece of software that has a lasting effect on almost all software developers is hard. Doing it twice, that’s almost imposible. In the early 1990’s, Linus Torvalds gave us the Linux Kernel. The Linux Kernel is arguably one of the most recognized examples of Open Source software. The existence of Linux has shaped much of the technology world, but I believe that Linus’ second great accomplishment, Git, is even more important.  Git is a distributed version control system that completely changes the way software developers interact with and manage their source control repositories.  The system is ideal for open source projects because it makes it very easy to fork  and merge projects.

Eclipse Juno will be available in 1 week, and as we move towards this release, I’m counting down the Top 10 Juno Features that I’m most excited about.  Number 6 on my list is Eclipse’s dedication to Git, the extent to which the eclipse eco-system has adopted it and the New and Noteworthy features in the EGit tools.

The Eclipse community has made a bold decision by declaring that Git will be the SCM for all Eclipse related technologies (I guess SVN is still an option). The Eclipse foundation has declared that CVS will be shutdown at Eclipse.org on December 21 2012. Throughout the past year, the Eclipse platform migrated 10 years of history to Git. While this may not seem like much (after all, there are tools for this), here are a number of things you must consider:  1. Custom CVS tooling was designed for the Eclipse SDK, 2. The custom Eclipse build tool was architected with CVS in mind (yes, Eclipse has a custom build tool that was built 10 years ago),  3. The entire Eclipse release process was built around CVS, and 4. The majority of the Eclipse committers were new to Git.  It was also a requirement that builds be reproducible, so any change in the SCM system must support maintenance builds.  Migrating the repositories, updating the builds, redesigning the processes and teaching a large community how to best use Git, is an accomplishment the Eclipse team should be very proud of.  Kim Moir (with the help of Paul, John, Dani, Andrew, Tom W., Remy, Olivier and and Bogdan) was responsible for leading the platform’s migration to Git.  Everyone had a laundry list of things you ‘must do‘, but when it came to getting things done, Kim, you delivered.  Thank-you for your service and dedication to Eclipse over the past 10 years.

In addition to moving the source tree to Git, Eclipse also has powerful Git tools (the EGit Project).  Last year EGit published their 1.0 release and since then the team has worked tirelessly to improve the tool.  They have released a number of notable features including support for Git Stash

A RefLog view (available since 1.1)

Branch decorators (which indicate if you are ahead, behind or diverged from the origin)

There are lots of performance / stability improvements.  You can read their entire New and Noteworthy.

Just for fun (and to tie this back to the introduction), I decided to create an Eclipse installation with the C/C++ Development tools and EGit, and I cloned the entire Linux Kernel source tree. I’m not sure we can get Linus to use this, but it certainly demonstrates the power and richness of Eclipse.

Matthias Sohn and Shawn Pearce lead the EGit project and they have a trusty army of helpers, including Benjamin MuskallaChristian Halstrick, Dariusz Luksza, Dani Megert, Jens Baumgart, Kevin Sawicki, Mathias Kinzler, Matthias Sohn, Robin Rosenberg, Robin Stocker, Stefan Lay and Tomasz Zarna.  Thank-you so much for your hard work and dedication to such an important project in the Eclipse ecosystem.

For more Eclipse Tips and Tricks (and the annual Top 10 List), why not follow me on twitter: