On the importance of source control

Hello all Quality folks. I don't know if anybody is watching this forum, but I guess I'm about to find out.

Since leaving my last position, I have come into a job where 4 of us have been spending 3 to 6 months trying to get a set of test code to run that we inherited from overseas. The problem? Bad source control.

Quality is usually about making sure stuff works, making sure it is supportable, and so on. But what are your habits for organizing things? Do you have good source control habits?

My personal opinions are along these lines:
1. Be careful how and when you branch. Too many people propagate branches.. remember.. every branch is another possibility for people looking for the right stuff.
2. Use branch names that mean something. I have been in places I could not figure out what a branch even meant.
3. Don't merge indiscriminantly. Have a good merge policy.
4. COMMENT EVERY CHECKIN!!! Some organizations have triggers to enforce checkin comments this is a good practice. Don't just write "fix to bug az4546564". Write a quick summary of what the code fixes.
5. LABEL THE TREE WHEN THE SOFTWARE IS STABLE. You should be able to pick up a set of software to reconstruct a version with a labeled specification. Make sure the labels are useful and meaningful.
6. Code reviews prior to checkin are a good idea, but I know some people will argue this point.

What are YOUR opinions??