Twitter github

Searching the GitHub Archive

Since it’s getting close to the end of the year, I’ve been working on generating some “year in review” reports for company related open source activity. As part of this effort, I stumbled across the GitHub Archive project by @igrigorik.

Essentially, it allows you to query the GitHub timeline (note: timeline data is available starting February 12, 2011). As an added convenience, the data is also available on Google BigQuery via a public dataset to make it easy to try out a few queries before downloading all the archive data locally. A couple downsides to Google BigQuery are that  the user interface is a bit clunky and there are query quotas in place (unless you sign up for the service), other than that it’s pretty straightforward to use.

Of course I got distracted from my initial task and started to search for profanity usage across the GitHub timeline in 2012. I mean, who isn’t interested in seeing how many instances of the seven dirty words they can find across the GitHub timeline? It all starts with a simple query (see the gist).

How many instances did I come across?

37,674 as of today (also posted a CSV online).

Here are some of my favorites:

After this distraction, I was happy add the new word “refuckulate” to my lexicon.

Enjoy grokking the GitHub Archive, I highly recommend it!

Eclipse Foundation Migrated to Git

Update: Mike Milinkovich has a great post on this topic too!

The countdown is finally over…

 

Over 80% of the projects at the Eclipse Foundation are finally on Git and CVS access is switched to be read only. I believe the projects left on SVN will migrate soon enough, there are just too many advantages with using Git.

One interesting bit of history regarding this migration to Git is it all started back in 2009 when some community and Eclipse Foundation board members wanted to have Git, JGit and EGit all at Eclipse. You may not believe it, but at that time, moving to Git was a bit controversial. I dug up a old Google doc that we had discussing the pros and cons of moving to Git (prepping a presentation for the Board), this is what we had for benefits:

  • Committers want Git support on eclipse.org
  • Provides all contributors equal tool support: non-committers equal citizens, reduces contributor startup time; have all committer tools at start, reduces contributor -> committer conversion bump
  • More accurate recording of activity: author recorded separately from committer; better IP tracking, code movement detection; better IP tracking after-the-fact; easy to maintain history, audit trails
  • Open source implementations; meets mandate to avoid vendor lock-in.
  • Widely popular: github.com has become very high traffic site.
  • Staying power; many large projects use Git, its not going away. Big current users: Qt, KDE, Linux, Android, X.org, Wine, OLPC, OpenAFS, Ruby, Perl5. More considering: GNOME, ASF
  • Easier to move projects to eclipse.org

An entertaining part of this analysis was the mention of GitHub becoming a high traffic site in 2009… GitHub recently posted some stats so we have an idea of what life was like in 2009 compared to now…

GitHub Stats

How times change.

EGit and JGit 2.2 Released

The JGit and EGit teams are happy to announce the 2.2 release.

What’s new? I recommend checking out the JGit New and Noteworthy along with the EGit New and Noteworthy documents. While there were a lot of new features, my favorite feature is the performance improvement in EGit for re-indexing repositories (it’s now done incrementally, see bug 393642).

The release tag is: 2.2.0.201212191850-r

You can download the latest release using this repository: http://download.eclipse.org/egit/updates

Enjoy and happy holidays! The next release will be in mid February.

Gerrit Tip: Rebase Change Button

I use Gerrit quite often and have a particular workflow… but sometimes I discover new features out of the blue…

Since Gerrit 2.4 (see release notes), a Rebase button was added that will take the most recent patch set and have it be rebased onto the tip of the destination branch or the latest patchset of the change depended upon. A new patch set containing the rebased commit will be produced and added to the change. It’s a great feature which helps alleviate a common workflow when working with Gerrit.

Note: Another option would be to set the Submit Action (via Admin > Projects > [Project Name] > General > Project Options) for your project to use ‘Cherry Pick’ as this would keep a clean history with no merge commits when submitting changes.

Anyways, enjoy and happy rebasing!

Open Compliance Summit Asia 2012

Last month, I was grateful to have the opportunity to present at the Open Compliance Summit hosted by the Linux Foundation.

As some of you may know, a portion of my current job at Twitter is defining our open source strategy and compliance efforts. While at Twitter we’re fortunate that compliance is less burdensome than at some other traditional companies who have many distribution points (e.g., devices), nevertheless it’s still important to respect licenses and the software authors intention. We mostly run on open source software and are cognizant of the benefit we receive from a variety of open source communities and what it means to give back. We also don’t mind sharing what we develop, on top of preferring liberal licenses as that helps with adoption (and also makes compliance less complicated) in my opinion.

At the end of the day, it was a great event bringing together participants from different companies to discuss open source compliance issues and best practices. Thanks again to the Linux Foundation for hosting the event.

Checkout GitHub Pull Requests via CLI

The Eclipse Foundation (by the way, you can follow them on Twitter now at @EclipseFdn) is now looking at ways to make it easier to accept GitHub pull requests. I highly recommend you check out this bug if you have any comments on the issue. I think there’s a lot we can do to make the lives of eclipse.org committers easier, along with our community contributors.

Ok, back to the main point of this post. I found a neat trick recently when it comes to accessing GitHub pull requests via the command line. The traditional way is adding a remote that involves the persons repository issuing the pull request (or curling a .patch file via curl https://github.com/repo/pull/123.patch and piping it to git-am). However, it’s as simple as modifying your fetch parameters for the origin repository to include “+refs/pull/*/head:refs/remotes/origin/pr/*” as an option. You can set this optional globally if you like in your git-config as a bonus:

git config --add remote.origin.fetch "+refs/pull/*/head:refs/remotes/origin/pr/*"

You are now able to easily fetch and checkout pull requests to play with. For example:

$ git checkout pr/123
Branch pr/123 set up to track remote branch pr/123 from origin.
Switched to a new branch 'pr/123'

That’s my git tip (or hack) for today, hope you enjoy it!

EGit and JGit 2.1 Released

The EGit and JGit teams are proud to announce the 2.1 release in time for Juno SR1.

The precise release version is 2.1.0.201209190230-r

This release contains some nice performance gains, improved autoCRLF support and the ability to optionally combine the commit and push to upstream steps in the Commit dialog (see EGit New and Noteworthy for the full list of features). JGit now provides an implementation for git-gc for FileRepositories (see JGit New and Noteworthy for the full list).

On a related note, I recently added BouncyCastle 1.47 to Orbit (see bug 390058). It was a long journey, but it will enable the JGit team to add support for signed commits and tags (see bugs 386908 and 382212).

Enjoy the latest release!

Comments Closed

100 Days: Eclipse Foundation Moves to Git

It’s great to see over 60% of Eclipse Foundation projects already migrated to Git.

It’s more rewarding given that this issue was brought up a couple years ago by a few community members (who were called a bit crazy at the time). It’s nice to see things finally through though, I think most people would agree that moving to Git was the right thing to do to modernize our infrastructure.

There are now 100 days until CVS becomes read only and is retired. If you’re an Eclipse Foundation project, I highly recommend migrating to Git. If you’re new to Git, I recommend trying out GitHub’s online tutorial (try.github.com) and the ProGit book. If you don’t want to migrate your main repositories first, I recommend starting with your project website first.

On a related note, the EGit and JGit projects are gearing up to release 2.1 soon for Juno SR1. Here’s a sneak peak at the release notes and if you want to contribute any changes in for 2.1, you only have a few more days to do so. I personally find the performance improved in the upcoming release for larger projects that I work on. I think we’re getting closer to finally making Ed Merks happy with the tooling, almost there!

Steep Ravine Trail Run

Yesterday, I had the pleasure of running the Steep Ravine Trail Run put on by Coastal Trail Runs. It was a fun race, the only downside was getting to the start line… I showed up a few minutes late due to the fog and had to make up for some lost time. My plan was to take it fairly easy the first few miles since all we were doing is climbing…

Once I made it to the top… I was floating on clouds ready to tackle the descent, the fog was mesmerizing.

I made up a lot of lost time on the way down… the conditions were a bit slick but the terrain wasn’t too technical. At the start of my second climb which met up with the Dipsea trail… the course became more technical. On the way down on the Dipsea, it was muddy and plenty full of slick steps…

I managed to finish the race in 2:21 (2:26 if you include my late start) which is definitely not the fastest time for me, but considering there was a lot of climbing and the trail was fairly technical I’m happy with the time. As an added bonus, I finished third in my age group and still have a few months of training before tackling the North Face Endurance Challenge trail marathon.

EGit and JGit 2.0 Released for Juno

The EGit and JGit teams are happy to announce the 2.0 release in time for the Eclipse Juno release.

Check out the respective JGit New and Noteworthy and EGit New and Noteworthy documents to see what’s new. In the end, it’s great to see 64% of the projects released on the Juno release to use Git, we’ve come a long way. I’m hoping that after the dust settles from the simultaneous release, the remaining projects can focus on migrating to Git.

For now, enjoy Juno and improved Git tooling support!