Twitter github

Posts Tagged with “git”

EGit and JGit 1.3 Released

The EGit and JGit teams are happy to announce the 1.3 release, just in time for Eclipse Indigo SR2.

The precise release version is 1.3.0.201202151440-r

It can be downloaded from the Eclipse Marketplace or the p2 repository.

There’s a lot of new improvements, the largest being git-submodule support:

I’m also a huge fan of the branch status decorations:

If you’re interested in the details of what’s new, check out the JGit New and Noteworthy and the EGit New and Noteworthy.

Note that this is the last release in the 1.X stream for EGit and JGit, there will be a 2.0 release in June targeting the Eclipse Juno simultaneous release. When we move to 2.0, there will be some breaking API changes and API cleanup that happens. If there was something you didn’t like about the API, now is your chance to speak up and contribute.

Gerrit at the Eclipse Foundation

Good news everyone, the Eclipse Foundation has been git’n it done and rolled out Gerrit to be used by any eclipse.org project who wishes to do so.

If you’re interested in using Gerrit for your eclipse.org project, please speak up on this bug.

It’s satisifying to see this finally be rolled out as a few of us committers have been pushing on this for the past couple of years as a way to modernize the Eclipse infrastructure. We have been piloting Gerrit for quite awhile in the EGit and JGit projects and have been very pleased with it. It’s great that Eclipse committers now have a convenient way of doing code reviews using Git if they wish to add that workflow for their project.

On a side note, I’m working on improving the way git contributions are handled by the Eclipse Foundation when contributors use Gerrit. I’m hoping to simplify the amount of work that needs to be done by committers and the IP team, if you’re interested in this effort, please follow and comment on this bug.

EGit and JGit 1.2 Released

The EGit and JGit teams are happy to announce the 1.2 release, just in time for the holidays!

The precise release version is 1.2.0.201112221803-r

It can be downloaded from the Eclipse Marketplace or the p2 repository.

There’s a lot of new improvements, including better performance and stability. If you’re interested in the details of what’s new, check out the JGit New and Noteworthy and the EGit New and Noteworthy.

We hope you find the release useful and please enjoy the holidays!

Apache and Politics Over Code?

Mikeal Rogers just wrote a fascinating blog post, Apache considered harmful.

I have a lot of respect for the Apache community but I’m glad that someone is calling them out finally. The Apache community likes to pride itself on community over code but what has been happening recently regarding the move to a distributed version control system is either pure politicking or negligence in my opinion.

You would have to be under a rock if you haven’t noticed the change both distributed version control and in particular Github has brought to the open source world. Can you name any other major open source project (besides Apache) that is not on some form of distributed version control or has a concrete plan to move? No, I can’t at least off the top of my head. This is because the times have changed, open source projects are more mainstream now and they especially favor distributed forges like Github.

Let’s try to have some fun with statistics. From a recent presentation by Stephen O’Grady from Redmonk, Github’s growth is almost unbelievable…

I’m confident if he updated the excellent presentation again, it would further show the distance between Github and the other forges. Heck, even throw in Bitbucket (Hg and Git now) and Launchpad (Bzr) to see how fast they are growing compared to the others. Another statistic we can look at to further spot this trend is package statistics from Debian…

That’s impressive growth for Git but still shows that SVN is doing OK (poor darcs). It would be great to see more download statistics but I can’t think of other easy sources at the moment. We can also analyze search volume via Google Trends to see what people are searching for over time…

Clearly git (including github) and mercurial are trending upwards. I mean, one could argue that this is because git and mercurial are harder to learn so people are searching more for it, but I doubt that’s the complete story. I didn’t include cvs (famous U.S. pharmacy) or bazaar (ambiguous) because they are searched for in other contexts and I don’t know how to tweak google trends. While doing these searches I wanted to test another hypothesis of mine. From personal experience, I believe that in the corporate world, distributed version control adoption is lagging. The main reason for this line of thinking is that corporations are obviously slower than open source communities in adopting new technologies. To test this theory, I used Indeed to perform a search and see how things are going…

From the looks of it, CVS/SVN are still the dominant players with Clearcase hilariously staying somewhat constant over time. However, I’m sure this graph is going to look quite different in a couple of years as the tools around distributed version control systems mature. I also believe developers will start asking for a form of distributed version control while experiencing it in the wild (see git-svn). I was curious to see if LinkedIn had anything to help shed some more insight of what is going on in the software industry and found their LinkedIn Skills application. I couldn’t find a good way to group and compare relative skills but I found some interesting information. In terms of relative growth, git seems to be trending well…

In terms of skill size, svn is still doing well.

I was curious to see how CVS was doing also…

CVS is experiencing negative skill growth and then I noticed CMVC in the trends which reminded me of bad times and I knew it was time to stop digging for statistics.

Why do I care? Two main reasons. The first is simple and deals with my day job of facilitating open source efforts at Twitter. If you’re going to open source a new project, the fact that you simply have to use SVN at Apache is a huge detterent from even going that route. It would be easier to simply host the code at Github or a similar forge and take what lessons you need from The Apache Way. There’s a lot of tools available to help you with the infrastructure of your project (i.e., you can use Cloudbees or Travis CI to help you with continuous integration). The point here is that continuing to use SVN is not going to help Apache grow. When is the last time you heard a developer all excited about using SVN?

Another reason is that I have personal experience with this particular issue as I spent the last couple years helping the Eclipse Foundation transition towards git. It’s a large transition because there’s roughly 1000 committers and over 200 projects using a mix of CVS and SVN. On top of that, it took convincing the EGit/JGit projects to move to eclipse.org and a couple board meetings and votes to make that happen. Furthermore, the git tooling had to get up to snuff before the majority of eclipse.org projects started to adopt git since the previous generation of SCM tooling (e.g., CVS) spoiled Eclipse developers. All I’m saying is that it took a lot of work to start the transition and the eclipse community hasn’t even fully completed it yet. Just ask the PostgreSQL community how quick it was moving to Git. The key point here is that you have to start the transition soon as it’s going to take awhile for you to implement the move (especially since Apache hosts a lot of projects).

In the end, I’m a huge fan of the Apache Foundation and The Apache Way, as a lot of us have benefited and learned from Apache in some fashion. I just hope the Apache community learns to evolve or they will become less relevant in the new open source world order of distributed version control systems and the forges behind them. I take this problem to heart because I believe The Eclipse Foundation faces some of the same issues and we’re doing our best to mitigate them.

Following Eclipse.org Projects on Github

There was a question on the linuxtools-dev mailing list recently about how to follow the commits of the project. While you can certainly create a git commit hook to email a mailing list after each commit, you can also easily follow eclipse.org projects on Github if you’re interested in them.

If you don’t want to watch the project and just focus on the commits, you can do that via RSS

On top of that, you can even follow your favorite eclipse.org committer! Getting mirrored on Github is one of the benefits of moving to Git at eclipse.org, so please try to do it soon as the eclipse.org SCM countdown is on its way… only 395 days until CVS/SVN will no longer be an option!

Eclipse Hacker’s Guide to the Git Universe

It was nice to attend EclipseCon Europe 2011 this year and give a packed git tutorial with some colleagues. Here are the slides and tutorial notes in case you missed it.

We covered information from basic git usage within Eclipse to all the exciting integration with Gerrit, Mylyn and Github. It seems like it went well since Ed Merks mentioned that he learned some new things (he’s lately been shaving a lot of yaks when using git).

As a reminder, the Eclipse Foundation is moving to git and it would be great if existing projects migrated earlier than later. At the moment, a little over a third of the projects have fully migrated to Git.

If you need help migrating, please subscribe to git@eclipse.org to ask for help and check the git migration information on the wiki.

EGit and JGit 1.1 Released

The JGit and EGit project teams are proud to announce our 1.1 release in time for Indigo SR1!

To see what’s new, check out the respective JGit new and noteworthy and EGit new and noteworthy documents. In terms of new features, some of my favorites are the new reflog view which I had a hand in putting together.

If you ever wanted to know where a commit went, git-reflog can save you. In terms of other features, I’m really happy with the improvements to the synchronize view which just screams now in terms of performance (thank you Dariusz Luksza). I’m confident now that we should handle the majority of repositories with reasonable performance when trying to compare refs.

The other highlight of the release is the improvements to the GitHub Mylyn Connector.

GitHub Pull Requests can now be added as a Mylyn Task Repository type and you can now open pull requests with an editor (supports opening commits in the commit viewer). This is fantastic productivity boost (thanks Kevin Sawiciki) if you had to work with github pull requests via the command line before. On top of that, there’s a full implementation of the GitHub v3 API available via the EGit project.

Enjoy the release and thanks for your patience while we improve the Git support within Eclipse!

Managing Git Repositories

I’ve had a few people that have come to me recently asking advice on how to manage Git repositories across teams. Besides the common but limiting setup of using cgit and ssh, there are a few other options that people seem to be not be aware of.

Gitblit

Gitblit is an open-source (under APL 2.0), pure Java stack for managing, viewing and serving Git repositories using JGit under the covers.

It’s very easy to setup if you have Java installed and you get a nice web console for managing Git repositories with metrics and all of that other good stuff you’d expect from a source code management system. If you’re just looking for a system to manage Git repositories for a small team, Gitblit looks like a great option.

SCM Manager

SCM-Manager is an aptly named management system for SCM. It works with Git out of the box but also supports Hg and SVN.

I personally haven’t played around with SCM-Manager but from the bitbucket commit logs, it looks like a pretty active project with a variety of extensions if you say needed to work against an ActiveDirectory server for authentication.

Gerrit Code Review

On top of allowing you to manage your Git repositories at a very deep level (permissions can be set via refspecs), Gerrit has a built-in code review system.

Gerrit is a mature project, used by open source projects such as Android and Eclipse. I highly recommend it if you’re looking for not only a system to manage your Git repositories but a code review system that tightly integrates with Git. It’s nice to note that code review items within Gerrit are Git-related artifacts. You are pushing git commits to Gerrit that can be shared and crafted by your colleagues. I find this to be a distinctive quality over other code review system such as ReviewBoard.

Anything else that I missed that people use out there?

GitHub and Eclipse Git Repository Mirroring

I recently refreshed the eclipse.org repositories mirrored on GitHub.

I’m pleased to report that we are up to 95 repositories mirrored on GitHub, up from 70 repositories a couple months ago. For example, projects like the C/C++ Development Tools (CDT) are completely mirrored on GitHub now so you can watch them (the repositories are synced about every 10 minutes so beware of the delay).

I hope that by the end of this year, we have the majority of eclipse.org projects mirrored! Enjoy!

git-reflog and Eclipse

If you’re using git, you should familiarize yourself with the git-reflog command, it’s one of the commands I use frequently and one of the cooler things that git supports right out of the box. In fact, Alex Blewitt recently wrote a good blog post on the topic. The fact that I didn’t have access to the git-reflog inside of Eclipse annoyed me enough that on a flight a few days ago I hacked up an initial implementation which was improved upon by Kevin Sawicki.

If you double-click entries in the Git Reflog view, the proper commit is opened in the commit viewer for inspection. I’m happy to report that you’ll have access to this view in the nightly builds and it will ship as part of the EGit 1.1 release in September. I guess my next major annoyance to tackle is git-stash support… just need another long plane ride to hack something up 🙂

Enjoy!