on Sep 22nd, 2009Git at Eclipse
Git has been gaining some traction in the Eclipse community as of late.
From the birth of the EGit project at Eclipse and the recent approval of JGit to be hosted at Eclipse as a sub project of the EGit project, good things are coming. Why should you care about Git?
Git is pretty popular these days as evident by some of the open source projects out there using Git:
- Linux
- KDE
- Qt
- Android
- X.org
- Wine
- VLC
- OLPC
- OpenAFS
- Ruby
- Perl
Apache is even rumored to be switching, at the moment they have a public GIT mirror.
Git is also fast and efficient. In some of my testing, Git produced significantly smaller repositories than SVN did. In terms of speed… I think Git’s ability to do branching cheaply is one of its biggest assets. In the end, I think the most important feature of Git is that it significantly lowers the barrier to contribution. People are able to easily branch your work and you can pull at a later time. I’m not a Git expert by any means yet, but here are some things that have helped me along my Git journey:
- Read the free Pro Git book
- Read Why you should switch from SVN to Git
- Read http://whygitisbetterthanx.com/
In the Eclipse world, I see a move towards Git as the smart thing to do. It would make it easier for the Eclipse community to contribute code versus our current model. It would also help the many companies out there that maintain their own copies of Eclipse and patch things as necessary because of their release cycles. The more I look at it, I can’t come up with many reasons why Eclipse shouldn’t move to Git. Here are some current happenings:
- A vserver is being provisioned with Git and Gerrit installed
- A read only GIT mirror of the Eclipse codebase is being setup
If Git is important to you at Eclipse, I encourage you to get involved with the EGit project via their mailing list.
Related posts:



Thanks for the post.
IMHO, the main question is: if I’m switching to GIT today, how good is the support I get within Eclipse? Is it production ready?
The EGit link is not working for me, BTW.
I fixed the link, thanks for the catch.
In my opinion, the EGit tooling is still in its early stages, but there’s a strong list of committers on the project that have been waiting for the project to be provisioned at Eclipse. You should see more progress towards the end of this year. I think most people that use Eclipse expect that the SCM tooling be as top notch as the CVS tooling. It takes time to get at that level though. Patience is a virtue, right?
I can’t wait for the project to get a p2 repository up and running to give it a try. I would like to move away from SVN and CVS and would like to see more things move to Git. This is a main reason I don’t use it yet, no Eclipse support that I know of.
What does it mean when you say “It would make it easier for the Eclipse community to contribute code versus our current model.” No more patches!?
I just did an evaluation and there are two showstopper issues for using egit right now, there are also several other major annoyances. The two showstoppers are the nonexistence of basic functions like pull/merge/rebase and the (amazing) fact that Eclipse has no general purpose conflict merge tool. All existing merge tools are tied to specific SCM implementations, which is infuriatingly bad design as fixing conflicts is a separate concern from telling the SCM that the conflicts are resolved.
So if you are going to be using Eclipse and git, you WILL be using the command line version of git (at least for now) and you will be picking an external merge tool (I recommend kdiff3) that you invoke from the command line with “git mergetool”.
The other “annoyances” I’ve seen are failure to respect .gitignore files, and ignoring of the autocrlf git setting, which means you can easily pollute your line endings if you have a mixed OS development team.
If you’re on a windows platform, the best gui i’ve seen for git is tortoisegit:
http://code.google.com/p/tortoisegit/
It’s just reached 1.0 status and it amazing. While i still prefer myself to use git under cygwin, I have it installed and and use it from time to time.