Thursday, October 09, 2008

Layers of an Onion

Earlier, I had mentioned that one of my first coding projects was to work on Subversion. I took on the herculean task of rewriting a library that has existed since Day One (the "working copy" library for those who may know what I'm talking about). Over the past eight years, it has slowly grown and expanded and been tweaked and prodded and poked. At this point, it is a morass of barbed tangles that nobody wants to get near. A rewrite has been requested for several years now, but nobody had time or cajones to jump in. Well... I decided that enough was enough, and Subversion really needed this work done if it was going to continue to improve and evolve.

As I've dived into it, it has been like peeling layers of an onion. I go to fix something, but to do that, I need to fix something else, which leads me on down to a third thing. Making headway is slow, but I have made some progress. At a minimum, I'm getting a lot of the code cleaned up in support of the larger task.

Subversion 1.6 is scheduled to come out in December. Only a portion of my overall work will be in there, with the bulk to appear in 1.7, next summer. It's a big and long project, but this work will help (literally) millions of Subversion users around the planet.