Version control systems are a tool close to any programmer’s heart and a lot has been made of advancements in Subversion, but there is another version control system out there that completely redefines the boundaries of how such a system should work. Tom Lord is the author of the Arch Revision Control System. OSDir interviews Tom on the story behind Arch and just how different it is from what you’re likely using today.
This turns out to be a great introduction to behind the scenes OSS for a non-developer. To those who normally pass over things like this, and want to get a better idea of how the software we use gets developed, I’d suggest taking a look.
The point about second class citizens is well-made, however Tom remains pretty vague at the end.
i recently looked at the various free/OSS versioning systems… there are two schools of thought .. the centralised systems and the distributed client-heavy ones.
for most people and projects, the simpler centralised ones are good enough. and then subversion is the obvious choice over cvs. its cvs but better. at this point arch seems like too much of a change in working style for people who need to get workng now.
svn commit, svn status, svn add … just like cvs. and that’s a big bonus when you’re pushed for time. plus the online documentation for subversion is much better then the bare documentation for arch. again you need this if you need to get work done now.
> for most people and projects, the simpler centralised ones are good enough.
Though — as Tom said in the interview — it makes you a second-class citizen compared to those who have commit priviledges because you can’t
[ Sorry for the last incomplete post, these Synaptics touchpads are a bit sensitive ]
> for most people and projects, the simpler centralised ones are good enough.
Though — as Tom said in the interview — it makes you a second-class citizen compared to those who have commit priviledges because you can’t easily track local changes (read: have a private branch, ability to revert changes, …).
But there are ways to get your own private tree with CVS, and it’s no harder than using arch (in fact, if you know CVS it’s clearly easier). You simply set up your own repository, check the code out the central repository then check it into your local repository. You can then make changes and check them into your repository, taking changes from the central repository when you’re ready. I recommend that people try this so they can see how absolutely useless CVS is when you’re working in this way. You will spend 99% of your day doing merges.
That’s why the vast majority of people who make personal changes to open source projects never contribute anything back. It’s just too hard to maintain. Arch can also help when you have a project that is dependant on other projects (and what open source project isn’t?) For example, when people download the source for Boomerang we tell them they need to go grab the bohem garbage collector and libexpat. If we were using arch and these two projects were using arch, we could just tell arch that we wanted to include these two projects in our tree and people could just do a single check out. As it stands, if we ever find a bug in Bohem or libexpat we’re going to make a patch and tell people to apply it when building them. That’s just messy.