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 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:

  • Lars Vogel
    Posted at 12:17 am, June 21, 2012

    Git more important then Linux? I think I disagree.

  • Lars Vogel
    Posted at 12:30 am, June 21, 2012

    @Ian: You could argue the same way about Git. Mercurial, Bazaar….

    Linux is significant because they started a non-company founded OS project and stayed open. It created a development model which required distributed version control. Git is just nice but without Linux, distributed version control (in all shades) would not be forced into existence and relevance.

  • Posted at 8:48 am, June 21, 2012
  • AngryBean
    Posted at 5:13 am, June 22, 2012

    This is a joke! 9 years and this bug is still open:

    Such a joke!

  • Posted at 6:11 am, June 22, 2012
  • Fernando C. Estrada
    Posted at 9:52 pm, June 24, 2012

    I completely disagree about “Git is even more important than Linux”, and I guess Linus too, because Git was just a tool developed to keep the version control of the Linux Kernel, once covered he returned to work in Linux. Anyway I enjoy a lot your posts. Regards! 😉

  • Posted at 3:26 pm, June 27, 2012