How to force examine before commit in SVN and so on


Our company use SVN for VCS, and we want this to be done:

pre-commit works, so we can saparete a big task into small tasks before commit.

we need review the code before commit.

One can make a version, and others can check it out. (without modify the publish repo.)

We can easily fork to another SVN server(for project management) and push changes back.

I know mercurial,git,bazzar can do the work, but how SVN can?

ps: don't tell me change SVN to mercurial, I'm not CTO.

Best Solution

Some of the problems can be solved by giving the developers their own branches. They can develop there their own code and if it is mature and stable enough, it could be merged with the "main" branch".

You can also use SVN simultaneously with Git/Mercurial/Bazaar - some projects actually do so. The decentralized VCS-es are used by developers in everyday's work and the reviewed and approved changes are moved to SVN.