Google is contributing a new a new multi-master implementation to JGit called Git Ketch (based on the Raft consesnus algorithm).
Posts Tagged with “git”
As some of you may know, I’m a huge fan of Gerrit and was involved with enabling it for Eclipse Foundation projects as part of our great Git migration. I also shamelessly support pretty much anything else that embeds JGit.
Anyways, I spent some time last weekend going through the book and I found it did a great job introducing Gerrit while taking care of basic setup gotchas. If you’re interested in using Gerrit at the Eclipse Foundation (or else where) and have no idea what the hubbub is about, I highly recommend checking the book out. As an advanced Gerrit user, I found the Appendix sections on working with GitHub (Gerrit supports replication) and integration with Jenkins (or Hudson) well done. As a bonus, I also learned about GerritHub which I had no idea existed.
In my opinion, the main downside of the book is that it didn’t cover an advanced Gerrit feature regarding tweaking submit rules with Prolog (which could always use more documentation), however, you can check out the online docs for some solid examples.
In the end, it’s always good to support authors who take the time to write about open source technology. Check the book out!
What’s new? I recommend checking out the JGit New and Noteworthy along with the EGit New and Noteworthy documents. The team is excited to get a new version ready for the Juno SR2 release. The release tag is:
You can download the latest release using this repository (or the Eclipse Marketplace):
Enjoy and the next release will be in time for Kepler in June 2013. I personally look forward to recursive merge support soon (see bug 380314).
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:
- fuck fnv hash sucks. SO MANY COLLISION. I don’t think hashing in the way to go
- open source n shit
- Added shit, fixed some shit, broke some more. Have fun.
- deleted the motherFucking buzz killing mood fucking .classpath files
- THE FLYING FUCK JUST HAPPENED
- Fuck unicode
- Refuckulate date thing to make it compile Windows
After this distraction, I was happy add the new word “refuckulate” to my lexicon.
Enjoy grokking the GitHub Archive, I highly recommend it!
Update: Mike Milinkovich has a great post on this topic too!
The countdown is finally over…
Shutting down CVS in T-1 minutes. Makes perfect sense. Despite what Husker Du might think youtube.com/watch?v=J1sYN0…
— Wayne Beaton (@waynebeaton) December 21, 2012
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…
How times change.
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:
You can download the latest release using this repository:
Enjoy and happy holidays! The next release will be in mid February.
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!
The precise release version is
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!
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!
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!