Rob Williams is a probabilistic Lean coder of Java and Objective-C. Rob is a DZone MVB and is not an employee of DZone and has posted 170 posts at DZone. You can read more from them at their website. View Full User Profile

Git: it's Time

  • submit to reddit

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.


Published at DZone with permission of Rob Williams, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


John J. Franey replied on Thu, 2010/07/01 - 12:00pm

Its been time for git.

I believe as you do, that "programming is predominantly a linquistic and textual enterprise". I'd also say this enterprise is directed towards the social task of communicating ideas among people. I recognize code modules as written messages sent to myself and other programmers over a transport we call the source code control system. We read code like we read letters, trying to get into the head of the sender.

cvs/svn routes the messages through a single, central hub. git/hg doesn't require a central hub to communicate. git/hg are more like the World Wide Web than are cvs/svn. WWW has been with us almost 20 years. 3270 terminals, cloud architecture, Bittorrent, SOA, social networking, and collapse of the Soviet Union, all show that centralization as a structure is so 20th century.

decentralized vcs is giving people an opportunity to explore new ways of communicating their source code changes. Gerrit is one of many tools that fit atop git; all are exploring these newly discovered communication channels. The Eclipse Foundation is supporting git in Eclipse projects to determine if the distributed vcs can help increase participants in the Eclipse developer community. This is all about communication.

Rob Williams replied on Wed, 2010/07/07 - 7:27pm in response to: John J. Franey

Amen, Brother (an atheist's amen, that is...). GitX is also a pretty interesting window in. I was kind of enamored with Versions when I first found it, but it misses this critical point, falls into old world. Centralization is so 20th C (and before) because it basically says either 'complexity is manageable' or 'complexity can be ridded through reduction.' Both are illusions. Gerrit is not super impressive as an interface, but they have the right idea about how review should fit into the overall workflow (or a conception that's much better than the old one).

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.