Beyond Subversion, Distributed SCM.
By Summers Pittman on Wednesday, March 26th, 2008I have been using Subversion for my source code management (SCM) for several years now. It has followed me from Georgia Tech, through several personal projects, and two jobs. It is a well supported, well documented, and well understood product with thousands if not millions of users. Being a good developer, however, I find myself asking “what next?”
One answer, which has been implemented by Sun for their Java, OpenSolaris, and Netbeans projects as well as by Linus Torvalds for the Linux project is a decentralized, distributed SCM. In these systems, instead of having one single trunk, every interested party has their own trunk which people check out from. These changes are kept locally until it is pushed to or checked out from a remote tree.
In these systems a single maintainer is considered to be keeping the “golden” version. He is responsible for making sure that all checked-in code passes tests, conforms to code standards, etc. This is the version of the project which is considered stable. End users check out from him. He checks out from the Quality Assurance team when they report that their code has been checked for new bugs and problems. QA, in turn, checks out from developers and creative when they announce that they have finished work.
Linus Torvalds presented the Linux SCM system, Git, at Google and his speech can be found on YouTube.
For people who are interested, the solution from Sun is called Mercurial. Both are Free software.











