- via hubot/chat, alle kan se hvordan det gjøres på første dag
- deployer feature-brancher til produksjon, master/produksjon låses mens feature branch er ute
- konvensjon: 15 minutter hvor man følger med før merge til master
- én monolittisk rails-app, "limit number of parts affected by each push"
- regler for hva som kan deployes via feature-branchen
- databaseendringer rulles ut til produksjon separat fra kodeendringer
- revers for å slette fra basen, først fjerne koden, så fjerne basen
- rename vanskelig, skjer sjelden/aldri
- deployes via capistrano
- heaven (internal tool), web service that orchestrates all capistrano deployments
- puppet altfor treigt for deployment
- feature branches are short-lived, 3-4 days max, "I feel unproductive if I can't push a feature branch to production every day"
- feature toggles
- .com team - priority is shipping fast
- no time spent on rebase/amend, keeping a clean history
- different story for open source projects
- one feature, drag image to upload
- 26 branches, small changes
- last branch toggled the feature on for normal users
- chat -> elasticsearch
- new relic
- hubot.github.com (node + coffeescript), github/hubot-classic
- haystack (internal logging tool) - graphs, spikes, live updating
- nagios
- collectd
- statsd + graphite
- dashboard: https://github.com/obfuscurity/descartes
- api.{auth,freq,ua,v,events.delivered},
- app-perf.{mysql-time},
- apps,
- assets,
- autids,
- backup billing,
- browser.{frontend,response_time},
- bugs,
- business
- status.github.com
- "couldn't ship the app without haystack/graphite" - devs use it every day
- Boyscout:
--recurse-submodules - 1 week sprints?
- Master should be stable
- Development should happen on feature branches - PR as code review
- https://github.com/component/component
- Split/merge repositories:
- https://github.com/apenwarr/git-subtree
git format-patch/git am
- branch.autosetuprebase true (auto rebase on pull)
- color.{ui} auto
- core.excludesfile
- diff.tool ?
- merge.tool ?