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:
1) "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).
2) 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.
--
Neil Kandalgaonkar ( ) <neilk(a)wikimedia.org>