Thanks to Jesse, I started exploring Git, a version control system alternative to CVS and SVN. Git is based on a very different metaphor. While in CVS/SVN there is one repository which is maintained in a single location, in Git there are as many repositories as users and all of them are maintained in a decentralized fashion, on all the machines of all the users. From centralization to decentralization, it is an interesting twist and change in perspective.
And so what about the risk of balkanization of code? And the fact that there are 10.000 (different) versions of the Linux kernel? Well, according to Linus, the answer is trust. Linus explains the metaphores behind git and the trust issues in an extremely interesting Google Talk.
From the talk of Linux (via Victor):
The way merging is done is the way real security is done, by a network of trust. if you have ever done any security work and it didn’t involve the concept of network of trust it was not a security work; it was a masturbation.
…we don’t know hundred people. We have five, seven, ten close personal friends…
This way of managing a software ecology is wonderfully adhocratic. There are now thousands different versions of the Linux kernel. Currently most of the people rely on Linus’ version but it is possible, in a perfect adhocratic way, that different people will rely on versions of different people. Go decentralized, go trust-based. Cool.
Indeed. This reminds me of a (quite) old project of mine to manage personal knowledge. hmmm… if only I could find that stub code…
Maybe it is better to get GIT code, If you manage to get Linus’ trust, it is done, he will import changes from you! ;-)