http://qs321.pair.com?node_id=893599

suaveant has asked for the wisdom of the Perl Monks concerning the following question:

So, how to people manage living code under CVS? We have sandbox,dev,pre-prod,prod and disaster recovery systems all running Perl. In the past we would tag files for a release and then cvs upd -r tagname to bring the various systems up to date. This worked rather well, but the major downfall being when we need to make a fix we move the tag on the existing file (or occasionally branch if necessary). When moving a tag, however, you lose track of what was on prod before the tag is moved.

We're trying keeping prod on its own full branch but that causes issues as well. For one, merging onto the prod branch almost always causes conflicts (that we ignore), for two it is not exactly obvious how to handle reverting code if a delivery goes horribly wrong. We could use cvs's date updating but files are often on the ppe system days before they go out, and going by date won't give us the state of the prod server as it was on a certain day necessarily.

Other people must be working in situations like this, how do you handle keeping track of your production code in a living web application?

                - Ant
                - Some of my best work - (1 2 3)