On 10/21/10 4:23 PM, Brion Vibber wrote:
The original purpose of having a deployment branch was so that we actually knew what we were running! :) Even with fairly regular deployments from trunk, we had two big problems:
- "live hacks" -- little tweaks, patches, and one-off hacks in the live
code to work around temporary problems.
In theory, live hacks are punishable by eternal torture in the bowels of SVN branching. In practice, they'll happen as long as it's _possible_ to deploy code that's not in SVN.
I feel that this has to be a symptom of some other problem. What sort of things go into "live hacks"?
If they are about rapidly reconfiguring, rolling back, or turning off features, I think that's better answered by having an explicit system to do such a thing (see my other post in this thread about Flickr's system).
- Temporary breakages on trunk right in the middle of an important quick
fix
If we don't do those one-off fixes, workarounds, and debugging hacks as live hacks, the alternative without a deployment branch is to actually do them *on* trunk. That means that when you want to slap in a one-line tweak to fix or debug something, you *also* have to deploy the last few days' worth of trunk changes.
Yes, definitely a problem. In the Flickr world, you're never more than a few hours off of trunk anyway; but we're not in that world, so we start to feel the need for a deploy branch.