So in the interest of keeping our branches from expanding forever I'm thinking we should stop creating new branches for each deploy cycle.
Instead, I'm thinking we should keep like three wmf branches. Let's call them wmf-foo, wmf-bar and wmf-baz for purposes of this e-mail, we can bikeshed later. We'd basically be having the two active branches we have now, plus the previous branch we deployed. When we start a new cycle, the "old" branch becomes the branch new branch, merging everything from master like we do when making a new branch. In practice this would map out to the following:
wmf-foo -> 1.22wmf19 wmf-bar -> 1.22wmf20 wmf-baz -> 1.22wmf21 wmf-foo -> 1.22wmf22 wmf-bar -> 1.22wmf23
And so on and so forth. When creating the new branch we can tag the old one in the same wmf/1.22wmf29 format so it's there for posterity. We could delete all the old branches and turn them into tags.
On the deployment side this is nice because we can just consistently have 3 branches live on the cluster rather than lingering old ones. Switching would be a matter of checking out and scapping rather than cloning and scapping.
Too confusing? Alternative ideas? I'm open to most anything that will stop us making new branches all the time :)
-Chad