Você precisa considerar que tipo de sistema de repositório sua equipe precisa para funcionar de forma eficaz. A principal diferença é entre:
- Repositórios centralizados - CVS, SVN, servidor de arquivos simples, etc.
- Repositórios Descentralizados - Git, Mercurial, Bzr
Eu faço esta distinção agora, porque se você passar de cvs para git, você precisará ler sobre o que significa ter repositórios descentralizados. Os novos tipos de fluxos de trabalho que você precisa desenvolver tornarão o desenvolvimento mais fácil e eficiente para equipes maiores, mas a mudança nos fluxos de trabalho fará com que suas primeiras tentativas falhem à medida que você fizer suposições sobre como ele deve funcionar.
Aqui no mundo do Ubuntu usamos Bazar (bzr) , que é um sistema descentralizado muito bom escrito em python e baseado em mercurial. É bastante fácil configurar um servidor e os comandos e extensões disponíveis estão bem desenvolvidos. O Eclipse tem um plugin muito bom para o bzr. O Launchpad e o Savana do GNU usam o bzr por padrão e é minha primeira escolha pessoal.
OGit também é outro fantástico sistema de repositórios. Desenvolvido pelo próprio Torvalds após seu tempo desastroso com um sistema proprietário, o GIT é muito rápido e um pouco mais difícil de usar que o bzr. É usado pelo github, gnome e vários outros projetos como seu sistema de repositório principal depois de usar o svn.
Ambos estão disponíveis nos repositórios do Ubuntu, bem como uma tonelada de extensões.
Eu não usaria o svn ou qualquer outro repositório centralizado, a menos que você tenha uma equipe pequena e saiba o que está fazendo.