Category: git

libgit2 at Google Summer of Code

by Andreas Ericsson Email

I've been quite busy the past few weeks. Besides vacationing, with all that that entails in forms of beachvolleyboll, partying and lazing around in the sun, I've also been working with a guy named Vicent Marti and his mentor, Scott Chacon (from github). Both have put quite a lot of effort into making the Google Summer of Code 2010 a really good year for libgit2. Ramsay Jones, the co-maintainer who refuses push access, should also be mentioned. He's been working tirelessly to make sure Vicent's recent changes keep the library working flawlessly on Windows boxen.

The goal for libgit2 summer of code was to add an efficient and functional revision walking machinery, as well as capabilities to manipulate the index and references in all the ways that git.git can.

This may not seem like such a great chore until one considers the fact that Shawn O. Pearce, the man who started the libgit2 effort, has contributed tens of thousands of lines of code to git.git itself and now maintains Gerrit and JGit, spent several months writing up the revision walking machinery for JGit. It becomes even more daunting when you realize that the code to read objects out of packfiles wasn't in libgit2 when Vicent started his project.

So far, Vicent has added a commit walking machinery with plenty of tests to it. Once we add branch, tag and reflog parsing code to libgit2, it will be possible to write the "git fsck"-like application using only libgit2 calls to access the repository. This is something of a holy grail in terms of capabilities, since such an application would need to be able to read and parse all types of objects from all types of sources. The writing of such an application is not in itself a goal for libgit2 in GSoC2010, but adding the capabilities to do it is.

Vicent is, in short, doing a stellar job. His mentor, Scott Chacon, has also started writing python bindings. It makes sense, I guess. He works for (or owns, I'm not sure) github, and every piece of python code he can offload to an opensource implementation of git is ofcourse a piece of code he needn't maintain, or pay to maintain, himself.

All in all though, it's working out quite well and the community is already benefiting from Vicent's work. If you want to help out, make sure to check out the official public libgit2 repository at git://repo.or.cz/libgit2.git

Big thanks go out to Ramsay Jones, Vicent Marti and Scott Chacon for putting so much effort into this. If the pace continues the way it has, we should have the entire library in just a few months :)

libgit2 moving forward

by Andreas Ericsson Email

Just a short post to announce myself as co-maintainer of libgit2. I don't know how long this will last, but Shawn O. Pearce (one of the truly heavy names in git development) will be very busy with the Google Summer of Code project, where core git has two student slots.

Shawn has been busy quite a long time (understandable, as he still makes significant contributions both to git.git and jgit.git), and only me and Ramsay Jones have made any significant contributions to libgit2 since it was announced back in November 2008.

Hopefully, this will mean whatever patches there are will get applied faster and that development will move forward at a quicker pace.

Personally, I've got a lot of un-committed work lying around that pertains to index reading and writing. I'll be working on finishing that up and sending it out to git@vger for review. The sooner we can get *some* part of the library working properly the better, imo, as git.git can't start using it until it does.

Oh, and libgit2 is currently looking for additional contributors. It doesn't really matter what you want to work on. Just clone the repo from git://repo.or.cz/libgit2.git and start hacking. Patches could go either to me (ae@op5.com) or to the git mailing list (git@vger.kernel.org).