1. Introdução a VCS/SCM

Os sistemas de controle de versão, mais comumente chamados de VCS (acrônimo do termo em inglês Version Control System) ou ainda SCM (acrônimo do termo em inglês Source Code Management) 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 conseqüentemente 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õe estas funcionabilidades, 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 maioria dos projetos de desenvolvimento de software livre opta pelo Subversion que é a evolução do inveterado CVS, porem podemos citar uma exceção a essa “regra”, que é uma 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 por 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 (acrônimo de Simulated Program whit Integrated Circuits Emphasis) e o CMMI (acrônimo de Capability Maturity Model Integration), que tendem a garantir um modelo unificado para os processos 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.

Obs.: Caso prefiram, também podem baixar o artigo (completo) no formato PDF através do link:

Download:
GIT: Controle de Versões Distribuído para Projetos de Software

0 Response to "1. Introdução a VCS/SCM"