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

Screen Shot 2012 06 19 at 1.13.31 PM Git, Top Eclipse Juno Feature #6

Screen Shot 2012 06 19 at 1.14.07 PM Git, Top Eclipse Juno Feature #6

A RefLog view (available since 1.1)

Screen Shot 2012 06 19 at 1.15.49 PM Git, Top Eclipse Juno Feature #6

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

Egit 13 branch decorations Git, Top Eclipse Juno Feature #6

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.

Screen Shot 2012 06 19 at 3.19.26 PM 1024x769 Git, Top Eclipse Juno Feature #6

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:


9 Responses to “Git, Top Eclipse Juno Feature #6”

  1. Lars Vogel says:

    Git more important then Linux? I think I disagree.

  2. Ian Bull says:

    @Lars,

    Linux is big (very big). But remember, RMS (and the FSF) was looking for a Kernel for GNU (to replace their broken one). If Linux wasn’t available, I believe something else would have been used. Git on the other hand is a complete game changer.

  3. Lars Vogel says:

    @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.

  4. [...] is less than 1 week to the Eclipse Juno release and I’ve been busy counting down The Top 10 Juno Features that I’m most excited about.    Over the past 10 years Eclipse has [...]

  5. AngryBean says:

    This is a joke! 9 years and this bug is still open: https://bugs.eclipse.org/bugs/show_bug.cgi?id=41431

    Such a joke!

  6. Ian Bull says:

    @AngryBean

    I’m not sure if it’s ‘a joke’, it looks more like a lack of resources. I haven’t seen you or anybody else step up on the bug report and offer a patch. While complaining is one way to get things done, it’s not necessarily the most effective way.

  7. [...] runtimes, and tools to help build both those runtimes and applications.  However, number 5 on my Eclipse Juno Top 10 List — Eclipse Orion — threw a wrench into my [...]

  8. Fernando C. Estrada says:

    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! ;-)

  9. [...] App Integration 9. LDT & Koneki 8. Mylyn & Intent 7. RAP Protocol 6. Git 5. JDT Enhancements 4. Orion 3. Xtext / Xtend 2. Code [...]

9 responses so far

Written by . Published in Categories: EclipseSource News, Planet Eclipse

Author:
Published:
Jun 20th, 2012
Follow:

Twitter LinkedIn Google+ GitHub