Os sistemas de controle de versão, mais comumente chamados de VCS*, ou mesmo SCM**, funcionam como aplicativos computacionais responsáveis pelo controle e gerenciamento de diferentes versões na implementação de um determinado documento. Na sua grande maioria esses sistemas são implantados com a finalidade de controlar e gerenciar o desenvolvimento de projetos de software, proporcionando a manutenção das suas versões, de um histórico e desenvolvimento dos códigos fontes e consequentemente da documentação de todo o projeto.
Esse tipo de ferramenta se mostra bastante presente em organizações e empresas de âmbito tecnológico e de desenvolvimento de projetos de software, sendo também bastante utilizado para o desenvolvimento de ferramentas open source (código aberto). Sua utilidade pode ser denotada por diversos aspectos, seja ele para pequenos projetos, como também para projetos de maior escala comercial.
Existem vários sistemas que propõem estas funcionalidades, entre os mais conhecidos e utilizados em diversos projetos encontram-se: CVS, ou Concurrent Version System (Sistema de Versões Concorrentes) e o SVN, mais conhecido como Subversion, esses dois últimos no ambiente livre, na outra ponta podemos citar sistemas comerciais como: Clearcase da IBM ou o SourceSafe da Microsoft. A grande maioria dos projetos de desenvolvimento de softwares livre optam pelo Subversion, que é a evolução do inveterado CVS, no entanto podemos citar uma exceção a essa "regra", que é a ferramenta chamada Bitkeeper, que apesar de ser comercial, foi por muito tempo utilizado para o gerenciamento e controle de versões do Kernel
Linux, até o surgimento do GIT. Muitas organizações comerciais também utilizam o SVN, apesar de algumas dessas empresas preferirem realmente uma solução paga, daí partem em optar pelos produtos mencionados acima. A escolha por empregar uma solução comercial comumente se dá por questões de garantias, visto que as soluções livres não se responsabilizam por bugs, erros ou perdas de informações no software, em contra partida podemos elevar as melhores condições de empregabilidade, segurança e desempenho das ferramentas livres.
Todos os caminhos que nos levam ao emprego de um sistema de controle de versão são comprovados pela sua eficácia e por estes fazerem parte dos principais requisitos para a manutenção e aprimoramento dos processos que envolvem um projeto de software, tanto quando sua ligação com processos de certificações como o SPICE*** e o CMMI****, que tendem a garantir um modelo unificado para os processos de nível corporativo.
Os principais proveitos em se empregar um sistema de controle de versão para monitorar as alterações realizadas durante as implementações de um determinado software são: controle e gerenciamento de históricos de alterações; identificação e restauração de versões estabilizadas; ramificações que ajudam na divisão do projeto, facilitando assim o trabalho de desenvolvimento em paralelo e principalmente o sincronismo oferecido para a equipe de trabalho.
________________________________________
* VCS: acrônimo de Version Control System
** SCM: acrônimo de Source Code Management
*** SPICE: acrônimo de Simulated Program whit Integrated Circuits Emphasis
**** CMMI: acrônimo de Capability Maturity Model Integration