I used SVN for this purpose some time ago on several servers and it worked quite well.
It does occur to me another question, won't be there conflict problems when a user pushes a file/s different from what other user pushed 1 minute ago?
SVN takes care about that. If a file has been modified and commited by user 1 while user 2 works on it too and user 2 then tries to commit his work, svn will inform the user that he has to run a update on his repository first so that svn can merge the changes in his local copy before he can commit his work. This kind of version control (with svn or git) is used by most OpenSource projects weher a lot of poeple are working at the same time on the code.
I wont use CVS as its quite old and not that easy to use, better use SVN or Git. If you develop on windows systems, then take a look at tortoisesvn client.