Sorry to say that, but that's just not the way you use revision control software.
You have full history on the server no matter what you do on the client. You can revert any change, including deletion of everything.
Committing only fully tested, battle proven code to revision control gives you absolutely no benefits of using revision control in the first place.
What you could do is this: mark one branch as stable (this should be either /trunk
or /braches/current-stable
, I'd suggest the latter), let developers commit everywhere else. Setup Jenkins to do testing on /trunk
and merge commits from trunk
to current-stable
only when they pass build tests.