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
By the time we're done getting our asses into shape all of these statements
should be true:
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
- You have a production branch.
- 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.
- 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
- 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.
- 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?
- You are not using CVS anymore.
- You have started using a version control system that's actually good.