Git: it's Time
Per my post a few weeks ago, the feature force of Git was a bit underwhelming (‘you‘ll be able to do commits when you are at the airport and don‘t have a connection…‘). Yet, this weekend, I found myself installing it on my mini server. Two reasons, I found some features that were more compelling, but also, the fractured, broken dreams of a more complete lifecycle that have littered these pages seemed suddenly possible through the git prism. Not by Git alone, but with the new review tool Gerrit thrown into the mix. What dreams? The dream of being able to review things before they end up in the code, of doing branches all over the place, keeping them in sync. The beauty of also having the author do the work of merging, then, if changes are required before the author is allowed to merge into the server version of said branch, again, work is in the right location.
I was going to blog about how that thread I found where the Hudson guys got all dopey over the idea of playing a part in allowing some form of holistic quality control, when it went up in a wisp of ‘oh well‘ the same night, was so typical of our fractured age. But then as I looked farther into the Git/Gerrit crystal I thought ‘this is the only chance.‘
The only problem I see with Git right now is that eGit, the eclipse plugin, is still in incubation phase and will not have broad coverage of the key features until September. I am thinking I won't care that much. When I did my tour this weekend, I made a project using a maven archetype, then init‘ed it with Git and saved it. One of the best things was setting up the repository on the mini server. I made a site (using a CNAME) and even managed to use realms to make different areas for different repository objects that could have different permissions.
On the whole, the process was fairly pain-free. Git uses curl, and the version on OS/X installs without SSL support, but MacPorts took care of that.
I looked at the eGit Gerrit instance tonight. That was a tad unimpressive. Gerrit is done using GWT. It‘s pretty ugly and busy. But it does look really impressive in its goals. I got the egit docs and installed them on my iPad. Really good for an eclipse plugin. The most impressive thing about the project though, was that they basically rewrote git in Java (JGit). That also made the whole enterprise a lot more tantalizing.
Just to beat one more of my favorite dead horses around here, if you believe, as I do, that programming is predominantly a linguistic and textual enterprise, source control and tools for dialoguing about the work, but also, controlling the flow of parts of work into the whole, could scarcely be of greater importance.