Git & Cerberus
Looking at this past article is a good start as most of the problems to be solved are similar or the same.
Auditing Rails Projects
Or how I learned to stop worrying and love SVN, Cerberus, and RCov
I recently was given carte blanche to enact some authoritarian controls on our source code at work, and ran with it. My general feeling is not to limit what people can do with our repository, just to audit that they have done it, and when it is problematic, make their work widely known rapidly. Thus, my intent was not to lockout checkins which would cause rake to fail, just to report on the checkins when they happened.
We had at a prior point in time incorporate the Cerberus system with a cron job on our source control server, every 10 minutes it would checkout the revision and then bitch about whoever had the last checkin if the build was broken to a mailing list all developers were signed up to. This was okay except:
- If two people comitted in that 10 minute period, the last got the blame.
- If you made huge structural changes to the project, it would cause the build to fail.
So our cerberus system got switched off and we quickly stopped having a reliable rake build. People broke things and didn't know they broke them, and we were slowly marching down the path of madness.
I decided that I wanted us to have a different system, one that:
- Would run the build process on every checkin.
- Could cope with large structural changes to the source tree.
- Would not violate our prior decision not to have config files checked into the source tree.
- Would generate code coverage reports.
It was more work than I anticipated!