Sistemas de controle de versão
Um tipo de software que é muito útil para o desenvolvimento de software são os sistemas de controle de versão. Também conhecidos por sistemas de versionamento, eles tem a finalidade de gerenciar diferentes versões no desenvolvimento de um documento qualquer, tanto os códigos-fonte como também a documentação.
É útil, em diversos aspectos, tanto para projetos pessoais pequenos e simples como também para grandes projetos comerciais.
Entre os mais comuns encontram-se as soluções livres: CVS, Git e SVN; e as comerciais: SourceSafe e ClearCase. O desenvolvimento de software livre prefere o SVN que vem substituindo o clássico CVS. Muitas empresas também adotam o SVN, embora algumas empresas prefiram uma solução comercial, optando pelo ClearCase (da IBM) ou SourceSafe (daMicrosoft). Optar por uma solução comercial geralmente está relacionada à garantia, pois as soluções livres não se responsabilizam por erros no software e perdas de informações[1], apesar das soluções livres poderem ter melhor desempenho e segurança que as comerciais. As soluções comerciais apesar de supostas garantias adicionais não garantem o sucesso da implementação nem indenizam por qualquer tipo de erro mesmo que comprovadamente advindo do software.
As principais vantagens em se usar um sistema de controle de versão são:
Redução de conflitos de edições na implementação. Mesmo com várias pessoas trabalhando num projeto, com um controle sobre o que está sendo alterado já é reduzido em tempo para descobrir um erro futuro.
Restauração de versões anteriores estáveis, assim como também se pode marcá-las.
Controle do histórico, podendo desfazer ações e restaurar versões.
Decomposição do projeto em varias linhas, uma ramificação propriamente dita, dando a possibilidade de trabalhar paralelamente varias classes do projeto. . A maioria dos sistemas possui diversos recursos como ramificação e mesclagem de histórico para auxiliar nessas tarefas.
Dentre as opções