Without a doubt, revision control systems are a completely necessary aspect of software engineering today. Even small projects can benefit from them, and I certainly need not make a case for them today.
However, I found it most interesting to read the very heated debate over which RCS to use for the Linux kernel. In fact, until recently they used a closed source RCS that Linus liked called Bitkeeper. Does it matter which RCS is used?
To some extent it does. I find that I prefer Subversion to CVS in terms of its philosophy of what a branch is. However, I find the tools for CVS to be more refined and I haven’t found any gui I like for SVN.
Linux was a unique example. Developers from all over the world toss patches in and they wanted to keep it that way. The notion of read/write access to the repository they want restricted. That’s why bitkeeper worked well for them.
We discussed in QSE the idea of keeping statistics- quantitative values- on the software engineering process. To what extent will RCS systems play into that? I really haven’t found any use for statistical data on my projects (short of being able to track a bug or feature from beginning to end).
It’s amazing to me that no course undergrad teaches the use of an RCS (or at least none I’ve yet encountered). I’d think we’d have a repository setup for the entire institution.