o que é um”sistema de controle de versão”?
Sistemas de controle de versões são uma categoria de ferramentas de software que ajuda no registro de alterações feitas aos arquivos, mantendo um controle de modificações feitas ao código. por que o sistema de controle de versões é tão importante?como sabemos que um produto de software é desenvolvido em colaboração por um grupo de desenvolvedores, eles podem estar localizados em diferentes locais e cada um deles contribui em algum tipo específico de funcionalidade/características. Assim, a fim de contribuir para o produto, eles fizeram modificações no código fonte(quer adicionando ou removendo). Um sistema de controle de versão é um tipo de software que ajuda a equipe de desenvolvedores a comunicar e gerenciar eficientemente(rastrear) todas as mudanças que foram feitas ao código fonte, juntamente com as informações como quem fez e que mudança foi feita. Um ramo separado é criado para cada contribuinte que fez as alterações e as alterações não são fundidas no código fonte original, a menos que todos sejam analisados assim que as alterações são verdes sinalizados que se fundiram ao código fonte principal. Ele não só mantém o código fonte organizado, mas também melhora a produtividade, tornando o processo de desenvolvimento suave.benefícios do sistema de controlo de versões:
a) Melhora o desenvolvimento do projeto de velocidade, fornecendo uma colaboração eficiente,
b) Potencializa a produtividade, acelerar a entrega do produto, e de competências dos colaboradores através de uma melhor comunicação e de assistência,
c) Reduzir as possibilidades de erros e conflitos entretanto desenvolvimento do projeto através da rastreabilidade para cada pequena mudança,
d) Empregados ou colaborador do projecto, pode contribuir a partir de qualquer lugar, independentemente das diferentes localizações geográficas através deste VCS,
e) Para cada contribuinte do projeto, uma cópia de trabalho diferente é mantida e não se fundiu ao arquivo principal a menos que a cópia de trabalho seja validada. Um exemplo mais popular é Git, Helix core, Microsoft TFS,
f) ajuda na recuperação em caso de qualquer desastre ou situação contingente,
g) Nos informa sobre quem, o que, quando, Por que as mudanças foram feitas.
Uso do sistema de controle de versões:
- um repositório: ele pode ser pensado como uma base de dados de mudanças. Contém todas as edições e versões históricas (snapshots) do projeto.
- Copy of Work (sometimes called as checkout): It is the personal copy of all the files in a project. Você pode editar para esta cópia, sem afetar o trabalho de outros e você pode finalmente enviar suas alterações para um repositório quando você terminar de fazer suas alterações.
Tipos de Sistemas de Controle de Versão:
- Os Sistemas de Controle de Versão
- Centralizado de Sistemas de Controle de Versão
- Controle de Versão Distribuído de Sistemas
Os Sistemas de Controle de Versão: é uma das formas mais simples e tem um banco de dados que mantidas todas as alterações em arquivos sob controle de revisão. RCS é uma das ferramentas VCS mais comuns. Ele mantém conjuntos de patch (diferenças entre arquivos) em um formato especial no disco. Adicionando todos os patches, ele pode então recriar o que qualquer arquivo parecia em qualquer ponto no tempo.
sistemas centralizados de controle de versões: sistemas centralizados de controle de versões contêm apenas um repositório e cada usuário recebe sua própria cópia de trabalho. Você precisa se comprometer a refletir suas alterações no repositório. É possível que outros vejam as suas alterações atualizando-as. duas coisas são necessárias para tornar as suas alterações visíveis para outras que são:
- você commit
- eles atualizam
o benefício do CVCS (sistemas centralizados de controle de Versão) faz a colaboração entre os desenvolvedores, juntamente com Fornecer uma visão de certa forma sobre o que todos os outros estão fazendo no projeto. Permite aos administradores controlarem quem pode fazer o quê.
tem algumas desvantagens, bem como o que levou ao desenvolvimento de DVS. O mais óbvio é o único ponto de falha que o repositório centralizado representa se ele vai para baixo durante esse período colaboração e salvar mudanças versionadas não é possível. E se o disco rígido do banco de dados central fica corrompido, e os backups adequados não foram mantidos? Perdes absolutamente tudo.
Sistemas Distribuídos de controlo de versões: os sistemas distribuídos de controlo de versões contêm múltiplos repositórios. Cada usuário tem seu próprio repositório e cópia de trabalho. Apenas enviar as suas alterações não dará aos outros acesso às suas alterações. Isto porque o commit irá refletir essas alterações no seu repositório local e você precisa pressioná-las para torná-las visíveis no repositório central. Da mesma forma, quando você atualizar, você não recebe as alterações de outros, a menos que você tenha puxado essas alterações para o seu repositório.
para tornar as suas alterações visíveis para outros, são necessárias 4 coisas:
- você commit
- você empurra
- eles puxam
- eles atualizam
os sistemas de controle de versão distribuídos mais populares são Git, Mercurial. Ajudam-nos a superar o problema do ponto único de fracasso.
Proposoof Version Control:
- múltiplas pessoas podem trabalhar simultaneamente em um único projeto. Todo mundo trabalha e edita sua própria cópia dos arquivos e cabe a eles quando desejam compartilhar as mudanças feitas por eles com o resto da equipe.ele também permite que uma pessoa use vários computadores para trabalhar em um projeto, por isso é valioso, mesmo que você esteja trabalhando sozinho.integra o trabalho que é feito simultaneamente por diferentes membros da equipa. Em alguns casos raros, quando edições conflitantes são feitas por duas pessoas para a mesma linha de um arquivo, então a assistência humana é solicitada pelo sistema de controle de versão para decidir o que deve ser feito.
- o Controle de Versão fornece acesso às versões históricas de um projeto. Este é o seguro contra Falhas de computador ou perda de dados. Se algum erro for cometido, você pode facilmente voltar para uma versão anterior. Também é possível desfazer edições específicas que também sem perder o trabalho feito no entretanto. Pode ser facilmente conhecido quando, por que, e por quem qualquer parte de um arquivo foi editado.