Pre tested commits (Test driven development using Continuous Integration server)

After 30 mins of looking into Google and comparing for a good continuous integration server (CI server), I came across this TeamCity CI server.   It is a continuous integration and build management system.  You can set up a build server within minutes and enjoy out of the box continuous unit testing, code quality analysis, and early reporting on build problems. It offers a gentle learning curve, so you can quickly improve your release management practices by gradually adopting its advanced features and capabilities.  What I like most about this is the so called pre-tested commits – which works under the promise of leaving no broken code in your version control.

The standard committing scenario goes like this:

Standard commit scenario

And as promised by this build and CI server, the process goes like this:


Now, ain’t it cool even to think that you leave no broken code in the repository?

The only thing I have in mind is what if I committed many times, and there are 5 developers – like me – committed at least 5 times.  Since this CI server verifies committed code first before actually committing it to the repository, and our code base is huge (takes 30 mins of maven build time), what will this CI do to account for verifying each commit?  Will this slow down significantly since it requires building and verifying each commit? Or will it solve this hypothetical question with an out of the box solution – just like what this integration server is?

A lot can be found @