Go to the first, previous, next, last section, table of contents.


Abuse of RCS

RCS takes care of all the items that you would want of a revision control system. What it cannot do is make sure you use it correctly. There are a couple typical ways that RCS is misused: checking out each and every file with a lock; working for days, weeks or months on one revision without checking the file back in; and not adding log messages.

Checking out (with a lock) every file is an easy way to pretend that RCS does not exist. Then when somebody wants to build a version of the software, you just check every file into RCS. This will work, but you are missing all of the ability to share sources and avoid trouble with access control. I prefer the extra step needed to check out a file with a lock before editing it. It makes me think a little before hacking away at the source and makes it simple (maybe even possible) to back out my changes if they are not correct. There is nothing wrong with having all your files checked out at once, as long as they are not locked.

It is not that keeping a file checked out with a lock for a long time is bad, just that it indicates you are making many changes without providing any way of undoing the last change. There is a lot to be said for small, incremental changes with a chance to test each change to make sure things work. When something breaks, you know it was the last incremental change, instead of one of the last 15 modifications you made. The rule of thumb for determining when to check something back in is:

How much of the changes you made are you willing to lose and how much work is it going to be to undo those changes if it was a mistake?

Log messages are very helpful to other people to document the changes you have made. They are somewhat useful when you compare two revisions for differences because the log message documents those changes. It only takes a small amount of effort, especially when compared to the effort needed for making the changes.


Go to the first, previous, next, last section, table of contents.