3. Getting version control right

This is where we are probably the most lame. Some of us are just more lame than others. So let's just lay out how we should be doing things and then tackle why and what we need to do to actually get there. If you're not using version control now the rest of us are just going to pretend we didn't know that and you are going to stop reading this and go install a version control system (VCS) the second, nay, nanosecond you finish this chapter. We shall never talk of this again.

By the time we're done getting our asses into shape all of these statements should be true:

  1. You have a production branch.
  2. Every time you have to fix some catastrophic bug that showed up on the live site you do so in another branch based on production.
  3. Every time you want to explore some new functionality you do so on a new branch and that branch is always based off of the production branch.
  4. You have a main development branch. When you're done speccing out that new functionality you merge it into here for all the other developers to share and enjoy.
  5. You are not using a version control system that makes branching and merging a pain. If it's a pain you'll avoid it. If you avoid it, like you have been, you're a dork and you are most definitely not a dork, now are you?
  6. You are not using CVS anymore.
  7. You have started using a version control system that's actually good.
I admit, some of these seem a bit excessive. Especially all that branching. But there are good reasons for each of those statements. So let's explore why:

K. Rhodes 2007-05-18