Sistema de Controle de Versão

De Wiki Colaborativa do SISP
Ir para: navegação, pesquisa

Sistemas de Controle de Versão[editar]

O sistema de controle de versão é uma ferramenta capaz de registrar e acompanhar mudanças realizadas nos mais diversos artefatos de um software durante todo o seu ciclo de vida. Essas ferramentas possibilitam a recuperação das versões anteriores de qualquer artefato do software, seja ele documentos, código-fontes, scripts de instalação, entre outros. Em qualquer momento, é possível obter todas as versões registradas do software.

Boas práticas de desenvolvimento de software implicam na utilização de sistemas de controles de versão, já que sua utilização permite que a equipe trabalhe simultaneamente no mesmo projeto, compartilhando e visualizando as mudanças e evoluções realizadas no software, além de permitir a visualização da última pessoa a realizar a mudança nos artefatos.

Uma outra vantagem na utilização de um SCM, é permitir a recuperação do projeto, caso um arquivo ou até mesmo o projeto inteiro tenha parado de funcionar, pode-se voltar a versão anterior e refazer os procedimentos.


Tipos de Ferramentas de Controle de Versão[editar]

As ferramentas de controle de versão podem ser divididas em três formas: Centralizada, Distribuída e Local.

Local – Consiste em copiar os arquivos para um diretório local, dentro da própria máquina, contendo a última data de modificação. Não possui nenhum controle fazendo com que a pessoa perca o local onde ela guardou os arquivos. Existem algumas ferramentas que buscam realizar o controle sobre os arquivos gerando maior organização durante o controle de versão local. Contudo se duas pessoas quisessem trabalhar em um mesmo módulo de um mesmo projeto, não será possível, já que o arquivo será trabalhado utilizado simultaneamente por duas pessoas.

Centralizada – É baseado na arquitetura do tipo cliente-servidor, ou seja, existe um repositório central (servidor), sendo que a cópia de cada um desses repositórios são feitos para os computadores dos desenvolvedores (clientes). Os artefatos dos softwares são direcionados somente para o servidor, sendo assim, a comunicação do repositório do projeto é feito estritamente para o servidor. Um exemplo de sistema de controle de versão que utiliza esse padrão é o Subversion (SVN).

Distribuída – Utilizada no Git, essa forma é baseada na arquitetura P2P (peer-to-peer). Assim como na arquitetura centralizada, é realizada uma cópia do repositório do servidor para as máquinas de cada desenvolvedor. No entanto, nesse modelo os repositórios dos membros do projeto podem comunicar entre si ou através de um repositório "oficial", que está centralizado. No caso de queda do servidor, o projeto não é paralisado, já que é possível os membros realizarem as interações entre eles. mesmos.


Mais Informações[editar]

Para mais informações, acesse o artigo da Wikipedia: Sistema de controle de versão;