Subversion - Journal of Omnifarious
Oct. 4th, 2005
06:39 am - Subversion
I don't hate it for that reason. I still think that model is probably the most appropriate for many projects. It makes checking out stuff to your laptop then resyncing once you get back home a pain, but there are other ways to handle that problem.
But, Subversion made a number of extremely conservative design choices early on. For example, they chose to use Berkeley DB for their backend data store because they didn't want to have to worry about supporting transactions. And they chose WEBDAV as their networking protocol because they didn't want to have to design one of those. And they used Apache APR for platform independence.
This resulted, strangely enough, in a system that was big, slow and had a lot of dependencies. This made it annoying to get off the ground, which greatly reduce its hackability by random outsiders. It also made the design inflexible. Subversion is a big-ole WWII era tank, when people were under the illusion that if you put enough armor on something, it would get to wherever it was going regardless.
At the time Subversion was developed, most version control systems that were worth anything were arcane proprietary secret technologies that were extremely expensive. It wasn't clear that the Open Source community could effectively replicate the features. I understand why they made the conservative design choices they did.
So, I give a lot of credit to the Subversion folks for getting the whole idea of a high-quality, reliable, Open Source version control system off the ground. I think their efforts are the reason we have Monotone, darcs, arch, my current favorite Mercurial, and an incredible plethora of other version control software.