A typical development flow has been:
- request an SVN task branch (wait for CM to help)
- do stuff (1-3 weeks)
- run all the regression tests (not on the latest stable)
- hope that nobody did anything that conflicted with us
- merge to the pending release (and pray we resolve any conflicts correctly)
Now we do the following:
- set up a team git repo (able to do this without CM's help)
- clone off a repo for each team member
- set up a daily cron job to get the latest stable from the pending release
- set up a daily hudson build to merge that in and push to team if it passes unit tests
- pull from team as we go (fast!)
- run all the regression tests (on the latest stable)
- use git to merge on top of the pending release and commit back to SVN (with minimal conflict windows)
Well, we finally got through a whole sprint without an SVN task branch. Maybe that seems like a small victory, but it saved us a bunch of late-breaking integration risk.
No comments:
Post a Comment